您的位置:首页 > 编程语言 > C#

温故而知新之C#(二):运算符重载

2007-03-27 22:44 267 查看
运算符重载可以简化操作,且使操作更直观。不过与C++相比,可以重载的运算符集更少了(奇怪了,C++ primer中用了几十页来讨论运算符重载,还说篇幅有点小。为啥这本C#的书只用了一页呢?)。下面是C#运算符及其重载特性表。

运算符
重载特性
+ - ! ~ ++ -- true false一元运算符可以重载
+ - * / # & | ^ << >>
二元运算符可以重载
== 1= < > <= >=
比较运算符可以重载
&& ||
不能被重载
[] ()
不能被重载
+= -= etc.
不能被重载
=.?; -> new is as sizeof typeof
不能被重载
需要注意的要点如下:

&&和||不能被直接重载,但使用&和|进入计算则可以被重载

[]不能被重载,可以使用索引器来代替它完成所需操作

()不能被重载,代替此运算符的方式是定义新的转换运算符

复合运算符不能重载,因为它们总是被分解开来,如+=

逻辑运算符必须成对重载==和!=

下面是小小的例子:

public static Currency operator+(Currency lhs, Currency rhs)
{
return (new Currency(lhs.val + rhs.val));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: