当前位置: 首页 > news >正文

C#运算符重载

1、运算符重载
运算符重载是指重定义C#内置的运算符。
程序员也可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。
2、在Box类中定义运算符重载

public class Box{private double length;[Description("长度")]public double Length{get { return length; }set { length = value; }}private double width;[Description("宽度")]public double Width{get { return width; }set { width = value; }}private double height;[Description("高度")]public double Height{get { return height; }set { height = value; }}public double GetVolume(){return length * width * height;}public static bool operator == (Box box1, Box box2){return (box1.length == box2.length) && (box1.width == box2.width) && (box1.height == box2.height);}public static bool operator != (Box box1, Box box2){return (box1.length != box2.length) || (box1.width != box2.width) || (box1.height != box2.height);}}

3、应用Box类

Box box1 = new Box();Box box2 = new Box();Box box3 = new Box();double volume = 0.0;box1.Length = 3.0;box1.Width = 4.0;box1.Height = 5.0;volume=box1.GetVolume();Console.WriteLine($"Box1的体积是{volume}");box2.Length = 6.0;box2.Width = 7.0;box2.Height = 8.0;volume = box2.GetVolume();Console.WriteLine($"Box2的体积是{volume}");bool flag=box1 == box2;Console.WriteLine($"Box1==Box2:{flag}");flag = box1 != box2;Console.WriteLine($"Box1!=Box2:{flag}");

4、运行结果
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • flutter开发实战-Webview及dispose关闭背景音
  • c与c++ 常用的字符与字符串处理的接口介绍:
  • Xilinx FPGA:vivado关于fifo的一些零碎知识
  • 【K8s】【问题排查】k8s只能本地服务器访问服务,其他节点无法访问服务
  • crontab定时任务不执行原因排查
  • 国际网课平台Udemy上的亚马逊云科技AWS免费高分课程和创建、维护EC2动手实践
  • linux高级编程(TCP)(传输控制协议)
  • Java核心技术【二十】Java泛型的基本概念和原理详解
  • 二叉树超详细解析
  • phpstudy框架,window平台,如何开端口给局域网访问?
  • AIGC专栏12——EasyAnimateV3发布详解 支持图文生视频 最大支持960x960x144帧视频生成
  • 【QT中实现摄像头播放、以及视频录制】
  • Consul与CoreDNS的对比
  • 架构设计(2)云原生架构与实例部署
  • 【WebGIS平台】传统聚落建筑科普数字化建模平台
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • @angular/forms 源码解析之双向绑定
  • Apache的基本使用
  • Consul Config 使用Git做版本控制的实现
  • ECS应用管理最佳实践
  • Next.js之基础概念(二)
  • quasar-framework cnodejs社区
  • v-if和v-for连用出现的问题
  • 创建一个Struts2项目maven 方式
  • 回顾 Swift 多平台移植进度 #2
  • 机器学习学习笔记一
  • 离散点最小(凸)包围边界查找
  • 免费小说阅读小程序
  • 前端性能优化——回流与重绘
  • 如何选择开源的机器学习框架?
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 突破自己的技术思维
  • ​用户画像从0到100的构建思路
  • #include
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (二十六)Java 数据结构
  • (转)Linux整合apache和tomcat构建Web服务器
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET 读取 JSON格式的数据
  • .NET+WPF 桌面快速启动工具 GeekDesk
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [1525]字符统计2 (哈希)SDUT
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [20190401]关于semtimedop函数调用.txt
  • [Angular] 笔记 7:模块
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [CISCN 2023 初赛]go_session
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [IDF]聪明的小羊