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();
      }
   }
}
相关推荐
阿松爱学习几秒前
【Unity开发】FileStream 详解及用法指南
unity·c#·unity开发
不灭的黄金瞳1232 分钟前
Java数据类型与变量
java·开发语言·intellij-idea
小白学大数据21 分钟前
Python 项目实战:用 Flask 构建生产级 MySQL 增删改查 REST API
开发语言·人工智能·python·mysql·flask
Nil20835 分钟前
leetcode 20有效的括号
开发语言
jaysee-sjc1 小时前
【苍穹外卖】Day01:从零认识企业级项目开发
java·开发语言·数据库·mysql·spring·intellij-idea·mybatis
ThornArmor1 小时前
《向内深潜,向外飞掠》
c语言·开发语言·c++·vim·visual studio
传奇开心果编程1 小时前
【仓颉语言基础语法学与练】第1课:从零开始
开发语言·学习·华为
君顾11 小时前
本地AI错题纠正小程序:端侧推理与错题闭环实战
java·开发语言·错题
吠品1 小时前
Python 写入 Excel 的两种主流方案实际用法总结
c语言·开发语言·算法
邪修king1 小时前
Re:Linux 系统篇(三十一):库的制作与原理Chapter2:静态链接与程序加载 —— 从磁盘 ELF 到运行中进程的完整旅程
android·linux·运维·开发语言