implicit
关键字用于声明隐式的用户定义类型转换运算符。 如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。
引用摘自:implicit(C# 参考)
仍以Student求和举例
class Student { /// <summary> /// 语文成绩 /// </summary> public double Chinese { get; set; } /// <summary> /// 数学成绩 /// </summary> public double Math { get; set; } }
不使用implicit
求和
class Program { static void Main(string[] args) { var a = new Student { Chinese = 90.5d, Math = 88.5d }; //a的总成绩 语文和数据的总分数 Console.WriteLine(a.Chinese + a.Math); } }
使用implicit
class Student { /// <summary> /// 语文成绩 /// </summary> public double Chinese { get; set; } /// <summary> /// 数学成绩 /// </summary> public double Math { get; set; } /// <summary> /// 隐式求和 /// </summary> /// <param name="a"></param> public static implicit operator double(Student a) { return a.Chinese + a.Math; } }
求和:
class Program { static void Main(string[] args) { var a = new Student { Chinese = 90.5d, Math = 88.5d }; double total = a; //a的总成绩 语文和数据的总分数 Console.WriteLine(total); } }