- 操作符(Operator)也译为“运算符”
- 操作符是用来操作数据的,被操作符操作的数据称为操作数(Operand)\
操作符的本质
- 操作符的本质是函数(即算法)的“简记法”
- 假如没有发明“+”,只有
Add
函数,算式3+4+5
将可以写成Add(Add(3,4),5)
- 假如没有发明“”,只有
Mul
函数,那么算式 `3+45只能写成
Add(3,Mul(4,5))`
- 假如没有发明“+”,只有
- 操作符不能脱离与它关联的数据类型
- 可以说操作符就是与固定数据类型相关联的一套基本算法的简记法
- 示例:为自定义数据类型创建操作符\
下例中操作符 +
就是 GetMarry
方法的简记。
namespace CreateOperator
{
class Program
{
static void Main(string[] args)
{
Person person1 = new Person();
Person person2 = new Person();
person1.Name = "Deer";
person2.Name = "Deer's wife";
//var nation = Person.GetMarry(person1, person2);
var nation = person1 + person2;
foreach (var p in nation)
{
Console.WriteLine(p.Name);
}
}
}
class Person
{
public string Name;
//public static List<Person> GetMarry(Person p1, Person p2)
public static List<Person> operator + (Person p1, Person p2)
{
List<Person> people = new List<Person>();
people.Add(p1);
people.Add(p2);
for (int i = 0; i < 11; i++)
{
var child = new Person();
child.Name = p1.Name + " & " + p2.Name + "'s child";
people.Add(child);
}
return people;
}
}
}