unity C# 自定义隐式转换

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

你可能感兴趣的:(unity C# 自定义隐式转换)