慕课网 4.3重载运算符

重载运算符

1、什么是重载运算符

利用现有的(不能创造新的运算符)某种运算符,针对自定义类(预定义类型和现有运算符的运算含义是确定的)或者结构,定义某种运算符(比如公狗狗+母狗狗=新生狗狗)。

2、重载运算符的原因

利用现有运算符,简化自定义类型的操作。做好是,该运算符和该操作,具有一定相关性。

3、语法细节

例如公狗狗+母狗狗=新生狗狗

public static Dog operator +(Dog male,Dog female)

{

···

}

4、那些运算符可以重载

一元运算符:+、-、!、~、++、- -、true、false(操作数必须是类和结构)

二元运算符:+、-、*、%、&、|!、^、<<、>>、= =、!=、>、<、>=、<=(两个操作数至少有一个表示类或者结构)

不能重载:=、&&、||、[](索引操作)、()等

5、重载运算符不能做什么

创造新运算符

改变运算符语法

重定义运算符如何处理预定义类型

改变运算符的优先级和结合性

6、重在运算符举例

···

public void ShowAge()

{

Console.WriteLine("Age="+_age);

}

···

//重载自增操作,针对宠物的年龄

public static Pet opertor ++(Pet pet)//返回值为Pet类型,参数为宠物自身。所有的重载方法都需要public static修饰

{

++pet._age;

return pet;

}

··· 

Dog dog=new Dog("Jack");

dog._age=2;

dog++;

dog.ShowAge();

你可能感兴趣的:(慕课网 4.3重载运算符)