Share via


operator (C# 參考)

更新:2007 年 11 月

使用 operator 關鍵字可在類別或結構 (Struct) 宣告內多載內建運算子或提供使用者定義的轉換。

範例

以下是一個極為簡化的分數類別,它會多載 + 和 * 運算子,以便執行分數的加法和乘法運算,並提供一個可將分數 (Fraction) 型別轉換為雙精度浮點數 (Double) 型別的轉換運算子。

class Fraction
{
    int num, den;
    public Fraction(int num, int den)
    {
        this.num = num;
        this.den = den;
    }

    // overload operator +
    public static Fraction operator +(Fraction a, Fraction b)
    {
        return new Fraction(a.num * b.den + b.num * a.den,
           a.den * b.den);
    }

    // overload operator *
    public static Fraction operator *(Fraction a, Fraction b)
    {
        return new Fraction(a.num * b.num, a.den * b.den);
    }

    // user-defined conversion from Fraction to double
    public static implicit operator double(Fraction f)
    {
        return (double)f.num / f.den;
    }
}

class Test
{
    static void Main()
    {
        Fraction a = new Fraction(1, 2);
        Fraction b = new Fraction(3, 7);
        Fraction c = new Fraction(2, 3);
        Console.WriteLine((double)(a * b + c));
    }
}
/*
Output
0.880952380952381
*/

C# 語言規格

如需詳細資料,請參閱 C# 語言規格中的下列章節:

  • 7.2.2 運算子多載

  • 7.2.3 一元運算子多載解析

  • 7.2.4 二元運算子多載解析

請參閱

工作

HOW TO:在結構之間實作使用者定義的轉換 (C# 程式設計手冊)

概念

C# 程式設計手冊

參考

C# 關鍵字

implicit (C# 參考)

explicit (C# 參考)

其他資源

C# 參考