为什么在C#中所有重载运算符的函数签名之前的Static关键字如下:
public static void operator =(Object a,Object b)
当我们做a = b时;然后一个值将被隐式传递。所以不需要static关键字。它必须像:
public void operator =(Object b)
是吗?答案 0 :(得分:9)
运算符是静态的这一事实允许它们在具有空值的情况下使用。它还强调了运算符不多态应用的事实。 (如果它们不是静态的,那么它们可能可以多态地应用......但是,无论如何,压倒一切都是一个坏主意。)
(请注意,无论如何都不能在C#中重载赋值运算符。)
答案 1 :(得分:0)
否则,您总是需要Object的实例来执行该操作。在案例a或b中你可能没有的是null。