C#学习系列之自定义转化、重载运算符

73 阅读1分钟

C#学习系列之自定义转化、重载运算符


啰嗦

学习基础。


自定义转化

显式或隐式转化,变成预期类型。

  • 隐式转换语法
public static implicit operator Dog(Cat cat)
{
	return new Dog(cat._name);//再转化使用
}
Cat cat=new Cat("jack");
cat.speak();
Dog dog=cat;
dog.spaek();//这里就会将本来狗的属性转化为猫的属性。
  • 显式转化语法
public static explicit operator Dog(Cat cat)
{
}
Cat cat=new Cat("xx");
Dog dog=(Dog)cat;

重载运算符

利用现有的某种运算符,针对自定义类或结构,定义某种运算操作。

  • 不能创造新的运算符
  • 预定义类型和现有运算符含义确定
  • 运算操作:类似 X+Y=Z
public static Dog operator +=(Dog male,Dog female)
{
	return new Dog();
}

一元、二元运算符都可以重载

总结

学习记录。

www.imooc.com/video/14235 www.imooc.com/video/14236