温故而知新之C#(二):运算符重载
2007-03-27 22:44
267 查看
运算符重载可以简化操作,且使操作更直观。不过与C++相比,可以重载的运算符集更少了(奇怪了,C++ primer中用了几十页来讨论运算符重载,还说篇幅有点小。为啥这本C#的书只用了一页呢?)。下面是C#运算符及其重载特性表。
需要注意的要点如下:
&&和||不能被直接重载,但使用&和|进入计算则可以被重载
[]不能被重载,可以使用索引器来代替它完成所需操作
()不能被重载,代替此运算符的方式是定义新的转换运算符
复合运算符不能重载,因为它们总是被分解开来,如+=
逻辑运算符必须成对重载==和!=
下面是小小的例子:
public static Currency operator+(Currency lhs, Currency rhs)
{
return (new Currency(lhs.val + rhs.val));
}
运算符 | 重载特性 |
+ - ! ~ ++ -- true false | 一元运算符可以重载 |
+ - * / # & | ^ << >> | 二元运算符可以重载 |
== 1= < > <= >= | 比较运算符可以重载 |
&& || | 不能被重载 |
[] () | 不能被重载 |
+= -= etc. | 不能被重载 |
=.?; -> new is as sizeof typeof | 不能被重载 |
&&和||不能被直接重载,但使用&和|进入计算则可以被重载
[]不能被重载,可以使用索引器来代替它完成所需操作
()不能被重载,代替此运算符的方式是定义新的转换运算符
复合运算符不能重载,因为它们总是被分解开来,如+=
逻辑运算符必须成对重载==和!=
下面是小小的例子:
public static Currency operator+(Currency lhs, Currency rhs)
{
return (new Currency(lhs.val + rhs.val));
}
相关文章推荐
- C#:运算符重载
- C#运算符重载实现动态SQL生成
- C#温故而知新学习系列之.NET框架高级特性—如何在.NET框架中自定义属性类?(三)
- c#运算符重载
- 【C#】3.算法温故而知新 - 快速排序
- C#运算符重载
- C#运算符重载
- C#学习笔记: 运算符重载、override、get和set访问器
- 介绍 C# 中的运算符重载
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术05--运算符重载
- C#温故而知新学习系列之面向对象编程—扩展方法(十)
- C#温故而知新学习系列之面向对象编程—readonly关键字(十七)
- C#中运算符重载
- C#运算符重载
- C#温故而知新学习系列之面向对象编程—ref参数(五)
- (多年后回头学习c#)被遗忘的世界 二 运算符重载
- C#温故而知新学习系列之面向对象编程—构造函数(七)
- 【C#】运算符重载
- C#温故而知新学习系列之XML编程—XmlSerializer类把复杂对象序列化为XML文档(六)
- C#:浅谈对象数组,运算符重载和深度复制的应用