多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 如何:使用运算符重载创建复数类(C# 编程指南) 本示例展示如何使用运算符重载创建定义复数加法的复数类 Complex。本程序使用 **ToString** 方法的重载显示数字的虚部和实部以及加法结果。 ``` public struct Complex { public int real; public int imaginary; // Constructor. public Complex(int real, int imaginary) { this.real = real; this.imaginary = imaginary; } // Specify which operator to overload (+), // the types that can be added (two Complex objects), // and the return type (Complex). public static Complex operator +(Complex c1, Complex c2) { return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary); } // Override the ToString() method to display a complex number // in the traditional format: public override string ToString() { return (System.String.Format("{0} + {1}i", real, imaginary)); } } class TestComplex { static void Main() { Complex num1 = new Complex(2, 3); Complex num2 = new Complex(3, 4); // Add two Complex objects by using the overloaded + operator. Complex sum = num1 + num2; // Print the numbers and the sum by using the overridden // ToString method. System.Console.WriteLine("First complex number: {0}", num1); System.Console.WriteLine("Second complex number: {0}", num2); System.Console.WriteLine("The sum of the two numbers: {0}", sum); // Keep the console window open in debug mode. System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); } } /* Output: First complex number: 2 + 3i Second complex number: 3 + 4i The sum of the two numbers: 5 + 7i */ ``` ## 请参阅 [C# 编程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [C# 运算符](https://msdn.microsoft.com/zh-cn/library/6a71f45d.aspx) [运算符(C# 参考)](https://msdn.microsoft.com/zh-cn/library/s53ehcz3.aspx) [Why are overloaded operators always static in C#?(在 C# 中,为什么重载的运算符始终是静态的?)](http://go.microsoft.com/fwlink/?LinkId=112383)