当前位置: 首页 > 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.dtcms.com/a/303211.html

相关文章:

  • 【办公类-109-01】20250728托小班新生挂牌(学号姓名)
  • 微服务的编程测评系统7-题库接口
  • windows平台计划任务批处理实现定时任务
  • 循环神经网络 中文情感分析案例
  • WAIC首日 | RWKV-7s 新型高效大模型架构正式亮相
  • django 按照外键排序
  • uvm_do sequence marcos
  • SQL之防止误删数据
  • Spring核心机制:深入理解控制反转(IoC)
  • Kotlin的datetime库
  • 荣耀应用市场《2025上半年应用合规治理报告》丨开发加油站
  • C# 静态类_静态方法_静态字段(static 声明静态的关键字 )
  • R语言与作物模型(DSSAT模型)技术应用
  • 未授权访问漏洞 总结
  • mysql 关于树形数据结构的一些操作
  • STM32中集成USB驱动
  • SQL 查询语法笔记
  • C语言笔记03 :关于指针的补充
  • 力扣面试150题--颠倒二进制位
  • 第18章 泛型 笔记
  • 第一第二章笔记整理
  • AutoGen - model_clients和model_context使用示例
  • Docker学习相关视频笔记(一)
  • 机器学习sklearn:决策树的参数、属性、接口
  • redis getshell得方式
  • Redis 部署模式详解
  • stm32开发 -- TFTLCD相关
  • Zabbix 6.0 监控AWS全栈实战|EC2至Lambda的无缝监控
  • 配置 MCP 让 cursor 结合 Figma 自动生成设计稿组件
  • Python defaultdict 的强大之处:告别繁琐的字典键检查: Effective Python 第17条