美文网首页
unity C# 自定义隐式转换

unity C# 自定义隐式转换

作者: WOTTOW | 来源:发表于2022-05-12 11:31 被阅读0次

    在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# 自定义隐式转换

          本文链接:https://www.haomeiwen.com/subject/udpsurtx.html