运算符重载
最近学校学了运算符重载,虽然很简单,还是记录下,以便于以后忘记和学习。
class XS { private double RP; //实部 private double IP; //虚部 public double getRP { get { return RP; } } public double getIP { get { return IP; } } public XS() //构造函数 { RP = IP = 0; } public XS(double RP, double IP)//构造函数重载 { this.RP = RP; this.IP = IP; } //加号+重载 public static XS operator +(XS c1, XS c2) { XS c = new XS(c1.RP + c2.RP, c1.IP + c2.IP); return c; } //对取反符号-重载(一元运算符重载) public static XS operator -(XS c) { XS c2 = new XS(-c.RP, -c.IP); return c2; } //对减号-重载(二元运算符重载) public static XS operator -(XS c1, XS c2) { XS c = new XS(c1.RP - c2.RP, c1.IP - c2.IP); return c; } //实现隐式类型转换(从 string 到 XS) public static implicit operator XS(string s) { s = s.Trim().TrimEnd('i'); s = s.Trim().TrimEnd('*'); string[] digits = s.Split('+', '-'); XS c; c = new XS(Convert.ToDouble(digits[0]), Convert.ToDouble(digits[1])); return c; } //输出虚数 public void putOut() { Console.WriteLine("{0} + {1}*i", RP, IP); } } static void Main(string[] args) { //调用不带参数的构造函数创建虚数对象c1 XS c1 = new XS(); //调用带参数的构造函数创建虚数对象c2 XS c2 = new XS(1, 2); Console.Write("c1 = "); c1.putOut(); Console.Write("c2 = "); c2.putOut(); XS c3; c3 = "100+200*i"; // 通过隐式转换对c3赋值 Console.Write("c3 = "); c3.putOut(); XS c4; c4 = -c2 - c1 + c3; //对对象进行加减运算 Console.Write("c4 = "); c4.putOut(); Console.ReadKey(); }
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/4008644.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?