共用方式為


HOW TO:使用運算子多載建立複數類別 (C# 程式設計手冊)

更新:2007 年 11 月

本範例介紹如何使用運算子多載化來建立一個定義複數加法的複數類別 Complex。這個程式會顯示數值的虛數和實數部分,以及使用 ToString 方法之覆寫的加法運算結果。

範例

public struct Complex
{
    public int real;
    public int imaginary;

    public Complex(int real, int imaginary)  //constructor
    {
        this.real = real;
        this.imaginary = imaginary;
    }

    // Declare 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}radius", real, imaginary));
    }
}

class TestComplex
{
    static void Main()
    {
        Complex num1 = new Complex(2, 3);
        Complex num2 = new Complex(3, 4);

        // Add two Complex objects through the overloaded plus operator:
        Complex sum = num1 + num2;

        // Print the numbers and the sum using the overriden 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# 程式設計手冊

參考

C# 運算子

operator (C# 參考)

其他資源

為何在 C# 中多載運算子 (Overload Operator) 總是靜態的?