C# 快速導覽 - 運算子多載

運算子 (operator) 視需要也可以多載 (overloading) ,就是以關鍵字 (keyword) operator 與運算子結合自訂一個 static 方法 (method) 。



舉例如下
public class Complex {
    public int real;
    public int imaginary;

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

    public static Complex operator +(Complex c1, Complex c2) {
        return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
    }

    public override string ToString() {
        return(System.String.Format("{0} + {1}i", real, imaginary));
    }

    public static void Main() {
        Complex num1 = new Complex(2, 3);
        System.Console.WriteLine("num1: {0}", num1);
       
        Complex num2 = new Complex(3, 4);
        System.Console.WriteLine("num2: {0}", num2);

        Complex sum = num1 + num2;
        System.Console.WriteLine(" sum: {0}", sum);
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:class30.cs
    功能:示範 C# 程式 
    作者:張凱慶
    時間:西元 2013 年 6 月 */


此例是自訂處理複數的 Complex 類別 (class) ,然後多載加號 + 運算子,使其符合複數的加法
public static Complex operator +(Complex c1, Complex c2) {
    return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}


編譯執行,結果如下



中英文術語對照
運算子operator
多載overloading
關鍵字keyword
方法method
類別class


您可以繼續參考
類別


相關目錄
回 C# 快速導覽
回 C# 教材
回首頁


參考資料
Standard ECMA-334 C# Language Specification
msdn: 運算子多載化教學課程

沒有留言: