在C#中类型转换类型:隐式转换(implicit conversions)
隐式转换就是系统默认的、不需要加以声明就可以进行的转换。在隐式转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换
例子:当需求是用Newtonsoft.Json保存二维数据。因为Newtonsoft不能直接保存vector2,所有这里需要自定义个二维数据结构用于保存,
我这个里是写的一个结构,在构造时转换类型。
一般情况
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);
}
}
调用
private void Test()
{
Vector2 item=Vector2.one;
Vector2_Save vector2_Save =new Vector2_Save(item);
}
隐式转换
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);
}
}
调用
private void Test()
{
Vector2 item=Vector2.one;
Vector2_Save vector2_Save = item;
}
网友评论