<分区>
作为 C# 的新手,我知道运算符重载的目的和用途,并且我可以看到它有时在非常特殊的情况下是多么优雅,例如否定一个值对象以一次否定它的所有字段,但是这样的事情总是可以用简单的、说话的方法来完成。是否有一些标准可以用作指南,何时或是否重载运算符或何时简单地使用方法?我找不到类似的东西,所以这只是品味/编程范式/风格的问题吗?
<分区>
作为 C# 的新手,我知道运算符重载的目的和用途,并且我可以看到它有时在非常特殊的情况下是多么优雅,例如否定一个值对象以一次否定它的所有字段,但是这样的事情总是可以用简单的、说话的方法来完成。是否有一些标准可以用作指南,何时或是否重载运算符或何时简单地使用方法?我找不到类似的东西,所以这只是品味/编程范式/风格的问题吗?
最佳答案
这是我发现的与任何类型的运算符重载指南最接近的东西: MSDN operator overload
我是从 C++ 背景开始接触 C# 的,在 C++ 背景下,运算符重载是常态的一部分。 C# 的一个问题是它的用处不大,因为所有对象都是引用。因此,您不能重载 = 运算符,在我看来,它是对复杂对象进行重载的最有用的运算符。也就是说,写一个扩展方法可以用同样的代码达到同样的目的。
如评论中所述,我也使用 C# 工作了将近 10 年,还没有看到有人重载运算符。
关于c# - C# 中的重载运算符实际上是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43548897/