能重载的一元运算符:+、-、!、~、++、--、True、False
能重载的二元运算符: +、-、*、/、%、&、|!、^、<<、>>、==、!=、>、<、>=、<=
不能重载的运算符:=、&&、||、[]、()等等
重载运算符不能做什么?
1.创造新的运算符;2.改变运算符语法;3.重定义运算符如何处理预定义类型;4.改变运算符的优先级和结合性
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Dog dog1 = new Dog("jack"); dog1++; dog1.ShowAge(); } } public class Dog { private string Name; private int age = 0; public Dog(string dname) { Name = dname; } public void ShowName() { Console.WriteLine("这是一条狗:{0}", Name); } public void ShowAge() { Console.WriteLine("宠物的年龄为" + age); } // 使用重载运算符 public static Dog operator ++(Dog dog) { dog.age++; // 年龄自增 return dog; } } }