当前位置: 代码迷 >> C# >> 利用implicit关键字干自定义类型隐式转换
  详细解决方案

利用implicit关键字干自定义类型隐式转换

热度:41   发布时间:2016-05-05 03:06:37.0
利用implicit关键字做自定义类型隐式转换

    在C#中,implicit关键字可以用来做自定义类型隐式转换。下面给个例子来说明。

    先定义一个Point类,表示一个点:

    public class Point    {        public double X { get; set; }        public double Y { get; set; }    }


    再在Point类中定义一个静态方法,用于由字符串隐式转换为Point类型:

    public class Point    {        public double X { get; set; }        public double Y { get; set; }        public static implicit operator Point(string constValue)        {            var result = new Point();            try            {                var arPoint = constValue.Split(new[] {","}, StringSplitOptions.RemoveEmptyEntries);                result.X = Convert.ToDouble(arPoint[0]);                result.Y = Convert.ToDouble(arPoint[1]);            }            catch            {                result.X = 0;                result.Y = 0;            }            return result;        }    }

    使用的过程非常简单,就跟我们平时的隐式转换一样:

            Point p = "3,4.5";            Console.WriteLine("X:{0}, Y:{1}", p.X, p.Y);


    注意,尽量隐式转换过程中不会出错,或者能处理异常情况。否则请使用explicit变为强制转换。