C#学习笔记之九
运算符重载改变了运算符运算规则,可以扩展运算符在类中的作用;
重载语法规则:public static type operator op (type 参数列表);例如对Team类加号运算符重载:public static Team operator + (Team oper1,Team oper2) {};注意参数类型必须是对象或结构,如果不是会提示运算符的参数必须是包含类型;
二元运算符重载时必须有两个参数
关系运算符重载时必须成对重载,成对重载的运算符如下:==和!=、<和>、>=和<=;重载关系运算符必须返回true或false;
true和false可以作为一元运算符重载,并且需要成对重载;
&、|、!逻辑运算符可以重载,返回bool类型结果;
&&与||重载必须重载&和|、true和false运算符;重载&和|时返回类型必须是该类的类型;参数是类对象的引用;
转 换运算符:public static implicit/explicit operator target-type(soure-type v);其中implicit是隐式转换,会自动调用转换过程;explicit是显式转换,将在使用强制类型转换时调用转换过程;相同类型时不能同时使 用;
转换运算符转换的目标类型或源类型必须是在其中声明转换的类;不能定义以object对象作为目标类型或源类型的转换;不能定义从基类到派生类的转换;不能定义从接口到其他类型或从其他类型到接口的转换;
重载运算符不能改变优先级和操作数的数量