在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
c#里的运算符重载是个不常出现的应用,同时也是个好玩的东西。
我们可以使用他来实现这样的需求: 当一个订单与另外一个订单相加形成一个新的订单。新订单的货物为两个订单的货物的并集,总价为两个订单的总价和。 下面实现看看 先做个辅助的货物类
public class Merchandise
} 然后来实现订单类
public class Order
} 下面是客户端调用代码
o2;
可以看出,运算符重载看起来与标准静态方法声明类似,但它们使用关键字operator 和 运算符本身,而不是一个方法名。现在可以成功地使用 + 运算符和这个类。 注意: 1.要重载运算符,可给类添加运算符类型成员(它们必须是static)。 2.一些运算符有多种用途,(如 - 运算符就有一元和二元两种功能),因此我们还指定了要处理多少个操作数,以及这些操作数的类型。 3.一般情况下,操作数的类型与定义运算符的类相同,但也可以处理混合 类型的运算符。 贴上MSDN的说明 operator 关键字用于在类或结构声明中声明运算符。运算符声明可以采用下列四种形式之一:
参数
前两种形式声明了用户定义的重载内置运算符的运算符。注意,并非所有内置运算符都可以被重载(请参见可重载的运算符)。op-type 和 op-type2 中至少有一个必须是封闭类型(即运算符所属的类型)。例如,这将防止重定义整数加法运算符。 后两种形式声明了转换运算符。conv-type-in 和 conv-type-out 中正好有一个必须是封闭类型(即,转换运算符只能从它的封闭类型转换为其他某个类型,或从其他某个类型转换为它的封闭类型)。 任何运算符声明的前面都可以有一个可选的属性(C# 编程指南)列表。
|
请发表评论