使用操作符重载扩展用户自定义的类型

ZDNet软件频道 时间:2004-11-08 作者:Builder.com |  我要评论()
本文关键词:cpptips
在创建用户自定义的(user-defined)数据类型时,如果用到操作符的话,定义操作符的行为也是必要的。所有的一元操作符和二元操作符都有预定义的实现,比如乘法(*)和减法(-)等,在任何表达式中都会自动提供它们的实现。
本文译自Builder.com,未经许可请勿转载 在创建用户自定义的(user-defined)数据类型时,如果用到操作符的话,定义操作符的行为也是必要的。所有的一元操作符和二元操作符都有预定义的实现,比如乘法(*)和减法(-)等,在任何表达式中都会自动提供它们的实现。将这些操作符应用到一个用户自定义的类型上涉及到的行为通常都不是 .NET 平台所固有的。让人感到高兴的是,.NET 平台允许定义、重载这些操作符,以便和用户自定义的类型交互。然而,目前这还只限于 C#。

二元操作符

操作符是返回操作结果的静态方法,操作数作为参数被传递。例如,下面的代码片断使用了加法(+)和乘法(*)操作符。

intadditionResult;
long multiplicationResult;
additionResult = 10 + 21;
multiplicationResult = 10 * 21;
Console.WriteLine(additionResult);
Console.WriteLine(multiplicationResult);

这些操作符返回期望的结果(31和210),但是在处理用户自定义数据类型时,C# 允许你定制它们的行为。

前面我们探讨了操作符的运算过程,下面让我们分析一下哪些 C# 操作符可以被重载:

·         +:加法操作符

·         -:减法操作符

·         *:乘法操作符

·         /:除法操作符

·         %:取模(余数)操作符

·         &:逻辑与(AND)操作符

·         |:逻辑或(OR)操作符

·         ^:指数操作符

·         <<:左移位操作符

·         >>:右移位操作符

·         ==:等于操作符

·         !=:不等于操作符

·         >:大于操作符

·         <:小于操作符

·         >=:大于等于操作符

·         <=:小于等于操作符


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134