p7 操作符(未学完) - 图1

  • 操作符(Operator)也译为“运算符”
  • 操作符是用来操作数据的,被操作符操作的数据称为操作数(Operand)\

操作符的本质

  • 操作符的本质是函数(即算法)的“简记法”
    • 假如没有发明“+”,只有 Add 函数,算式 3+4+5 将可以写成 Add(Add(3,4),5)
    • 假如没有发明“”,只有 Mul 函数,那么算式 `3+45只能写成Add(3,Mul(4,5))`
  • 操作符不能脱离与它关联的数据类型
    • 可以说操作符就是与固定数据类型相关联的一套基本算法的简记法
    • 示例:为自定义数据类型创建操作符\

下例中操作符 + 就是 GetMarry 方法的简记。

  1. namespace CreateOperator
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. Person person1 = new Person();
  8. Person person2 = new Person();
  9. person1.Name = "Deer";
  10. person2.Name = "Deer's wife";
  11. //var nation = Person.GetMarry(person1, person2);
  12. var nation = person1 + person2;
  13. foreach (var p in nation)
  14. {
  15. Console.WriteLine(p.Name);
  16. }
  17. }
  18. }
  19. class Person
  20. {
  21. public string Name;
  22. //public static List<Person> GetMarry(Person p1, Person p2)
  23. public static List<Person> operator + (Person p1, Person p2)
  24. {
  25. List<Person> people = new List<Person>();
  26. people.Add(p1);
  27. people.Add(p2);
  28. for (int i = 0; i < 11; i++)
  29. {
  30. var child = new Person();
  31. child.Name = p1.Name + " & " + p2.Name + "'s child";
  32. people.Add(child);
  33. }
  34. return people;
  35. }
  36. }
  37. }