unity C# 自定義隱式轉(zhuǎn)換

在C#中類型轉(zhuǎn)換類型:隱式轉(zhuǎn)換(implicit conversions)
隱式轉(zhuǎn)換就是系統(tǒng)默認(rèn)的、不需要加以聲明就可以進(jìn)行的轉(zhuǎn)換。在隱式轉(zhuǎn)換過程中,編譯器無需對轉(zhuǎn)換進(jìn)行詳細(xì)檢查就能夠安全地執(zhí)行轉(zhuǎn)換

例子:當(dāng)需求是用Newtonsoft.Json保存二維數(shù)據(jù)。因?yàn)镹ewtonsoft不能直接保存vector2,所有這里需要自定義個二維數(shù)據(jù)結(jié)構(gòu)用于保存,
我這個里是寫的一個結(jié)構(gòu),在構(gòu)造時轉(zhuǎn)換類型。

一般情況

  public struct Vector2_Save
    {
        public float x;
        public float y;

        public Vector2_Save(Vector2 d)
        {
            x = d.x;
            y = d.y;
        }
        public Vector2 ToVector2()
        {
            return new Vector2(x, y);
        }
    }
調(diào)用
   private void Test()
        {
            Vector2 item=Vector2.one;
       Vector2_Save vector2_Save =new Vector2_Save(item);
        }

隱式轉(zhuǎn)換

    public struct Vector2_Save
    {
        public float x;
        public float y;
        public Vector2_Save(Vector2 d)
        {
            x = d.x;
            y = d.y;
        }
        public static implicit operator Vector2(Vector2_Save t)
        {
            return new Vector2(t.x, t.y);
        }
        public static implicit operator Vector2_Save(Vector2 t)
        {
            return new Vector2_Save(t);
        }
    }
調(diào)用
   private void Test()
        {
            Vector2 item=Vector2.one;
            Vector2_Save vector2_Save = item;
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容