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

C#_运算符重载 operator

函数重载就是把某个函数表现为新的状态   运算符重载就是把运算符重写 实现新的功能

在类中重载

“==” 运算符重载(“==” 与 “!=”是一对运算符,重载其中一个,另一个也要重载)

 internal class Class1{public int Age {  get; set; }public string Name { get; set; }public int Id { get; set; }public Class1(int age, string name, int id){Age = age;Name = name;Id = id;}//运算符重载//Console.WriteLine(c1 == c2);public static bool operator ==(Class1 a, Class1 b){if (a.Age == b.Age && a.Name == b.Name && a.Id == b.Id){return true;}return false;}// a != b public static bool operator !=(Class1 a, Class1 b){return !(a == b);}}

 使用运算符重载 比较对象中的数据 默认比较的是 地址  而运算符重载是通过定义的方法逻辑进行比较的

 static void Main(string[] args){Console.WriteLine(1==1);//trueClass1 c1 = new Class1(18, "张三", 12345);Class1 c2 = new Class1(18, "张三", 12345);Console.WriteLine(c1 == c2);//false  不一样的原因 c1 与 c2 比较的是堆内存中的地址 Class1 c3 = c1;Console.WriteLine(c3 == c1); // true  Console.WriteLine(c1 != c2);//使用运算符重载 比较对象中的数据 默认比较的是 地址  而运算符重载是通过定义的方法逻辑进行比较的Console.WriteLine(c1 == c2);Console.WriteLine(c1 != c2);}

示例:将“+”重载为“-”

Class1中

 public static int operator +(Class1 a, Class1 b){return a.Age -b.Age ;}

Main中 

Console.WriteLine(c1+c2);

http://www.xdnf.cn/news/1206019.html

相关文章:

  • 【kafka】消息队列
  • Java 数学工具类 Math
  • redis未授权getshell四种方式
  • Leetcode——11. 盛最多水的容器
  • 利用DataStream和TrafficPeak实现大数据可观察性
  • 【Git】Linux-ubuntu 22.04 初步认识 -> 安装 -> 基础操作
  • Prompt工程记录
  • MCU+RTOS调试
  • STM32启动流程
  • opencv 模块裁剪 按需安装指定模块
  • MCU 中的 PWM(脉冲宽度调制)是什么?
  • 未授权访问复现
  • Python动态规划:从基础到高阶优化的全面指南
  • 未授权访问漏洞靶场(redis,MongoDB,Memcached...)
  • Unity_UI_NGUI_锚点组件
  • 项目如何按时交付?重点关注的几点
  • 【Linux操作系统】简学深悟启示录:Linux环境基础开发工具使用
  • GoLand 项目从 0 到 1:第三天 —— 图数据库版本管理方案调研与中间件部署
  • Dify-14: 工作流API端点
  • 在虚拟机ubuntu上修改framebuffer桌面不能显示图像
  • STM32F4—电源管理器
  • YOLOv11改进:添加SCConv空间和通道重构卷积二次创新C3k2
  • 时间数字转换器TDC的FPGA方案及核心代码
  • 数分思维10:用户增长
  • 小智源码分析——音频部分(二)
  • 机器学习sklearn:决策树的参数、属性、接口
  • mp核心功能
  • S7-200 SMART 通过本体 RS485 口与 DP01 上传 / 下载程序(网口故障)
  • Java项目:基于SSM框架实现的进销存管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • 我从 Web2 转型到 Web3 的 9 条经验总结