在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;
}