C#中,运算符重载必须声明为public和static的,重载 == 和 != 时,最好也应重载Equals()和GetHashCode()方法,因为 == 和Equals()方法应保持一样的逻辑(不重载后两方法,会产生一个compiler warning)
类 别
|
运 算 符
|
限 制
|
算术二元运算符
|
+, *, /, –, %
|
无
|
算术一元运算符
|
+, –, ++, ––
|
无
|
按位二元运算符
|
&, |, ^, <<, >>
|
无
|
按位一元运算符
|
!, ~, true, false
|
true和false运算符必须成对重载
|
比较运算符
|
==, !=, >=, <, <=, >
|
必须成对重载
|
赋值运算符
|
+=,–=,*=,/=,>>=,<<=,%=
,&=,|=,^=
|
不能显式重载这些运算符,在重写单个运算符如+,–,%等时,它们会被隐式重写
|
索引运算符
|
[]
|
不能直接重载索引运算符。第2章介绍的索引器成员类型允许在类和结构上支持索引运算符
|
数据类型转换运算符
|
()
|
不能直接重载数据类型转换运算符。用户定义的数据类型转换(在本章的第2部分介绍)允许定义定制的数据类型转换
|
|
请发表评论