gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:44:13 26 4
gpt4 key购买 nike

为什么 C# 要求运算符重载是静态方法而不是成员函数(如 C++)? (也许更具体地说:这个决定的设计动机是什么?)

最佳答案

Eric Lippert 在 blog post 中详细回答了这个问题。此后已被删除。这里是 archived version .

关于值类型和实例运算符还有另一个更微妙的地方。静态运算符使这种代码成为可能:

class Blah {

int m_iVal;

public static Blah operator+ (Blah l, int intVal)
{
if(l == null)
l = new Blah();
l.m_iVal += intVal;
return l;
}
}

//main
Blah b = null;
b = b + 5;

因此,即使引用为空,您也可以调用运算符。对于实例运算符,情况并非如此。

关于c# - 为什么 C# 运算符重载必须是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2018108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com