c#操作符過載是什麼?
是指允許使用者使用使用者定義的型別編寫表示式的能力。
例如,通常需要編寫類似於以下內容的**,以將兩個數字相加。很明顯,sum 是兩個數字之和。
int i = 5;
int sum = i + j;
如果可以使用代表複數的使用者定義的型別來編寫相同型別的表示式,那當然是最好不過了:
complex i = 5;
complex sum = i + j;
運算子過載允許為使用者定義的型別過載(即指定明確的含義)諸如「+」這樣的運算子。如果不進行過載,則使用者需要編寫以下**:
complex i = new complex(5);
complex sum = complex.add(i, j);
此**可以很好地執行,但 complex 型別並不能象語言中的預定義型別那樣發揮作用。
在我看來是操作符過載是讓struct、class、inte***ce等能夠進行運算。
如時實現c#操作符過載。
如下例中的struct hour中的public static hour operator+ (hour lhs,hour rhs)
c#操作符過載方法:
1、編寫操作符過載方法。
2、例項化後,進行操作符運算
下邊用c#操作符過載**進行說明:
classprogram
", hrsum.ivalue);
console.writeline("hrvalue1 + 10 = "
, hrsumint.ivalue);
console.writeline("11 + hrvalue2 = "
, hrintsum.ivalue);
console.readkey();
}structhour
//定義乙個屬性,便於取用value值
public
intivalue
} //c#操作符過載
//1、宣告乙個二元操作符,將兩個hour類加到一起
public
statichouroperator+ (hour lhs,hour rhs)
/* 操作符是public的。所有操作符都必須是public的
操作符是static的。所有操作符都必須是static的,操作永遠不具有多型性,
面且不能使用virtual、abstract、override或者sealed修飾符。
二元操作符(比如+)有兩個顯式引數;一元操作符有乙個顯式的引數
我們有了public hour(int ivalue)建構函式,就可以將乙個int與hour相加,只是首先要將int轉換成為hour
hour a= ;
int b= ;
hour sum=a+new hour(b);
雖然上述**完全有效,但相較於讓乙個hour和乙個int直接相加它即不清晰也不準確。
為了使hour可以+ int,必須宣告乙個二元操作符+,它的第乙個引數是hour,第二個引數是乙個int。
c#操作符過載*/
public
statichouroperator+ (hour lhs,intrhs)
//使乙個int 可以+hour。
public
statichouroperator+(intlhs, hour rhs)
} }
c#操作符過載示例2:
structhour
//1、定義操作符過載(一元操作符)
public
statichouroperator++ (hour huvalue)
//c#操作符過載
//==操作符是二元操作符,必須帶有兩個引數
public
static
bool
operator==(hour lhs,hour rhs)
public
static
bool
operator!=(hour lhs,hour rhs)
} //++操作符有字首和字尾的形式,c#能智慧型地為字首後字尾使用同乙個操作符。
static
voidmain(stringargs)
", hu.ivalue);
//c#操作符過載
++hu;
//輸出過載後的結果
console.writeline("hu++ = "
, hu.ivalue);
console.readkey();
}
C 操作符過載
1.作為成員過載 class myclass public myclass operator const myclass d cons friend myclass operator const myclass a1,const myclass a2 關於返回值型別的討論 呼叫者堆疊裡返回乙個物件效...
C 過載操作符
過載操作符 一 過載操作符的定義 1.過載操作符的結構 返回型別 operator 需要過載的操作符 形參列表 注意 形引數目應和運算元數目相同。2.過載操作符的幾條注意事項 1 過載的操作符名不能通過連線其他合法符號來建立任何新的操作符。如 2 過載操作符必須具備至少乙個類型別或列舉型別的運算元。...
c 操作符過載
過載操作符 一 限制 1 不能增加新的操作符 2 有些操作符不能過載,如.物件中的訪問成員 作用域解析操作符 sizeof 三元操作符 3 不能改變操作符的元數,元數是指與操作符相關的引數或運算元個數。比如一元操作符 只能應用於乙個操作符 4 不能改變操作符的優先順序 5 不能重新定義內建型別的操作...