首页 > 学院 > 开发设计 > 正文

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

2019-11-14 14:14:07
字体:
来源:转载
供稿:网友

    在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变为强制转换。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表