当前位置: 首页 > 编程语言 > C#

为什么C#运算符重载必须是静态的?分享

时间:2023-04-10 18:45:41 C#

为什么C#运算符重载必须是静态的?为什么C#要求运算符重载为静态方法而不是成员函数(如C++)?(也许更具体地说:这个决定的设计动机是什么?)查看这篇文章。有几个原因,主要原因似乎是为了保持运算符的对称性(这样二元运算的左侧就不会得到特殊处理,因为它负责调度运算)。在这里难以捉摸的细节回答:http://blogs.msdn.com/ericlippert/archive/2007/05/14/why-are-overloaded-operators-always-static-in-c.aspx关于值类型和实例运算符有另一个微妙之处。静态运算符使这种代码成为可能:classBlah{intm_iVal;publicstaticBlahoperator+(Blahl,intintVal){if(l==null)l=newBlah();l.m_iVal+=intVal;返回l;}}//mainBlahb=null;b=b+5;因此,即使引用为空,也可以调用该运算符。例如,运营商不会这样做。为什么这些方法不应该是静态的可能是最好的想法。它不一定是状态,因此是相同的。以上是C#学习教程:为什么C#运算符重载一定要是静态的?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: