(原创)c#学习笔记08--面向对象编程简介02--OOP技术05--运算符重载

8.2.5  运算符重载

  本书前面介绍了如何使用运算符处理简单的变量类型。有时也可以把运算符用于从类实例化而来的对象,因为类可以包含如何处理运算符的指令。

  例如,给Animal添加一个新属性Weight,接着使用下述代码比较家禽的体重:

      if (cowA.Weight > cowB.Weight) 
      { 
          ... 
      }

  使用运算符重载,可以在代码中提供隐式使用Weight属性的逻辑,如下面的代码所示:

      if (cowA > cowB) 
      { 
          ... 
      } 

  大于运算持>被重载了。我们为重载运算符编写代码,执行上述操作,这段代码用作类定义的一部分,而该运算符作用于这个类。在上面的示例中,使用了两个Cow对象,所一运算符重载定义包含在Cow类中。也可以重载运算符,以相同的方式处理不同的类,其中一个(或两个)类定义包含达到这一目的的代码。

  注意,只能采用这种方式重载现有的C#运算符,不能创建新的运算符。但是,可以为一元和二元运算符(如+)提供实现代码。详见第13章。

posted @ 2015-11-03 11:57  星月相随  阅读(129)  评论(0编辑  收藏  举报