C# 運算符重載(Operator Overloading)是一種特性,允許開發者自定義類或結構體的操作符行為
運算符重載的實現方式主要有兩種:靜態方法和實例方法。靜態方法使用 operator
關鍵字定義,而實例方法則使用 public static
修飾符定義。以下是一個簡單的示例,展示了如何在自定義類中重載加法操作符:
public class ComplexNumber
{
public double Real { get; set; }
public double Imaginary { get; set; }
// 構造函數
public ComplexNumber(double real, double imaginary)
{
Real = real;
Imaginary = imaginary;
}
// 重載加法操作符
public static ComplexNumber operator +(ComplexNumber c1, ComplexNumber c2)
{
return new ComplexNumber(c1.Real + c2.Real, c1.Imaginary + c2.Imaginary);
}
}
在這個示例中,我們創建了一個名為 ComplexNumber
的類,表示復數。然后,我們重載了加法操作符 +
,使其能夠處理兩個 ComplexNumber
對象的相加操作。當我們使用 +
操作符將兩個 ComplexNumber
對象相加時,它會調用我們定義的重載方法,并返回一個新的 ComplexNumber
對象,其實部和虛部分別為兩個輸入對象的實部和虛部之和。
需要注意的是,并非所有操作符都可以被重載。一些操作符,如 &&
、||
和 ?:
等,不能被重載。此外,重載操作符時還需要遵循一些規則,例如不能改變操作符的優先級和結合性,以及確保操作符的行為在邏輯上是一致的。