对操作符的重载和转换操作符--------------c#
这种写法能 自由自在的使用 加减乘除等操作符: 先定义一个类
public sealed class chongzai { public Int32 canshu1; //重载操作符 + ,参数必须包含一个以上当前的类型chongzai. public static Int32 operator +(chongzai s, Int32 c) { return (s.canshu1 + c); } //转换操作符,,,可以用=号,将string转换成 chongzai类型,这个implicit是隐式的。 public static implicit operator chongzai(string s) { return new chongzai() { canshu1 = Convert.ToInt32(s) }; } //转换操作符,也可以将当前类型的一个参数,转换成string类型,这个explicit是显式的。 public static explicit operator string(chongzai s) { return s.canshu1.ToString(); } }
然后就可以用了
chongzai c1 = new chongzai() { canshu1 = 34 }; chongzai c2 = new chongzai() { canshu1 = 78 }; Int32 klkkl = c1 + 3;//操作符重载 string s1 = (string)c2;//转换操作符。。显式 c2 = "1024";//转换操作符。。隐式 Console.WriteLine("操作符重载结果:{0}"+klkkl); Console.WriteLine("显示转换操作符结果:{0}" + s1); Console.WriteLine("隐式转换操作符结果:{0}" + c2.canshu1); Console.ReadKey();