c#运算符重载

(就是使自己写的类可以实现运算)

可以重定义或重载 C# 中内置的运算符。因此,可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。

csharp 复制代码
namespace OperatorOvlApplication
{
   class Box
   {
      private double length;      // 长度
      private double breadth;     // 宽度
      private double height;      // 高度
      public double getVolume()
      {
         return length * breadth * height;
      }
      public void setLength( double len )
      {
         length = len;
      }
      public void setBreadth( double bre )
      {
         breadth = bre;
      }
      public void setHeight( double hei )
      {
         height = hei;
      }
      //定义重载!!!!!!!!!!
      // 重载 + 运算符来把两个 Box 对象相加
      public static Box operator+ (Box b, Box c)//实现了自定义类的"+"运算
      {
         Box box = new Box();
         box.length = b.length + c.length;
         box.breadth = b.breadth + c.breadth;
         box.height = b.height + c.height;
         return box;
      }
   }
   class Tester
   {
      static void Main(string[] args)
      {
         Box Box1 = new Box();         // 声明 Box1,类型为 Box
         Box Box2 = new Box();         // 声明 Box2,类型为 Box
         Box Box3 = new Box();         // 声明 Box3,类型为 Box
         double volume = 0.0;          // 体积
         // Box1 详述
         Box1.setLength(6.0);
         Box1.setBreadth(7.0);
         Box1.setHeight(5.0);
         // Box2 详述
         Box2.setLength(12.0);
         Box2.setBreadth(13.0);
         Box2.setHeight(10.0);
         // 把两个对象相加
         Box3 = Box1 + Box2;//使用了重载函数!!!!!!!!!!
         // Box3 的体积
         volume = Box3.getVolume();
         Console.WriteLine("Box3 的体积: {0}", volume);
         Console.ReadKey();
      }
   }
}
相关推荐
abcy0712134 分钟前
flink窗口类型
开发语言·python·算法
-银雾鸢尾-7 分钟前
C#中的继承
开发语言·c#
zhanghaha131418 分钟前
Python语言基础:2_环境搭建
开发语言·python
Wang's Blog8 小时前
Go-Zero项目开发4: 用户服务搜索、详情与统一错误处理
开发语言·golang
我星期八休息9 小时前
网络编程—应用层HTTP协议
linux·运维·开发语言·前端·网络·网络协议·http
梅雅达编程笔记9 小时前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
Mr__Miss9 小时前
Java泛型完全指南:从入门到精通
java·开发语言·python
赵庆明老师9 小时前
Vben精讲:14-Vben远程加载语言包
开发语言·vben
hehelm10 小时前
AI大模型接入SDK—通用模块设计
linux·开发语言·c++
吴可可12311 小时前
C#AutoCAD二次开发打断多段线
c#