重載運(yùn)算符
1蜘渣、什么是重載運(yùn)算符
利用現(xiàn)有的(不能創(chuàng)造新的運(yùn)算符)某種運(yùn)算符甲葬,針對(duì)自定義類(預(yù)定義類型和現(xiàn)有運(yùn)算符的運(yùn)算含義是確定的)或者結(jié)構(gòu),定義某種運(yùn)算符(比如公狗狗+母狗狗=新生狗狗)浩村。
2露戒、重載運(yùn)算符的原因
利用現(xiàn)有運(yùn)算符,簡(jiǎn)化自定義類型的操作白嘁。做好是蔫慧,該運(yùn)算符和該操作,具有一定相關(guān)性权薯。
3姑躲、語法細(xì)節(jié)
例如公狗狗+母狗狗=新生狗狗
public static Dog operator +(Dog male,Dog female)
{
···
}
4、那些運(yùn)算符可以重載
一元運(yùn)算符:+盟蚣、-黍析、!屎开、~阐枣、++、- -奄抽、true蔼两、false(操作數(shù)必須是類和結(jié)構(gòu))
二元運(yùn)算符:+、-逞度、*额划、%、&档泽、|俊戳!揖赴、^、<<抑胎、>>燥滑、= =、阿逃!=铭拧、>、<恃锉、>=羽历、<=(兩個(gè)操作數(shù)至少有一個(gè)表示類或者結(jié)構(gòu))
不能重載:=、&&淡喜、||秕磷、[](索引操作)、()等
5炼团、重載運(yùn)算符不能做什么
創(chuàng)造新運(yùn)算符
改變運(yùn)算符語法
重定義運(yùn)算符如何處理預(yù)定義類型
改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性
6澎嚣、重在運(yùn)算符舉例
···
public void ShowAge()
{
Console.WriteLine("Age="+_age);
}
···
//重載自增操作,針對(duì)寵物的年齡
public static Pet opertor ++(Pet pet)//返回值為Pet類型,參數(shù)為寵物自身瘟芝。所有的重載方法都需要public static修飾
{
++pet._age;
return pet;
}
···?
Dog dog=new Dog("Jack");
dog._age=2;
dog++;
dog.ShowAge();