我正在尝试重载==运算符,但出现以下错误:
预期可重载的一元运算符
这是我的代码
public bool operator == (MyClass nm1)
{
return true;
}
public bool operator != (MyClass m2)
{
return true;
}
我遵循了msdn注意,但仍然遇到相同的错误
当您重载时operator ==
,应static
使用将两个实例作为参数的方法来执行此操作:
public static bool operator == (MyClass leftSide, MyClass rightSide) {
return true;
}
public static bool operator != (MyClass leftSide, MyClass rightSide) {
return !(leftSide == rightSide);
}
static
在执行比较的代码不属于左实例或右实例的意义上,上下文使您的操作员的代码更具“对称性”。
另外,static
不可能“虚拟化”运算符(您仍然可以在实现中通过调用虚拟函数来实现,但是必须显式地实现)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句