c# - C# 中的重载运算符实际上是好的做法吗?

标签 c# operator-overloading overloading paradigms

<分区>

作为 C# 的新手,我知道运算符重载的目的和用途,并且我可以看到它有时在非常特殊的情况下是多么优雅,例如否定一个值对象以一次否定它的所有字段,但是这样的事情总是可以用简单的、说话的方法来完成。是否有一些标准可以用作指南,何时或是否重载运算符或何时简单地使用方法?我找不到类似的东西,所以这只是品味/编程范式/风格的问题吗?

最佳答案

这是我发现的与任何类型的运算符重载指南最接近的东西: MSDN operator overload

我是从 C++ 背景开始接触 C# 的,在 C++ 背景下,运算符重载是常态的一部分。 C# 的一个问题是它的用处不大,因为所有对象都是引用。因此,您不能重载 = 运算符,在我看来,它是对复杂对象进行重载的最有用的运算符。也就是说,写一个扩展方法可以用同样的代码达到同样的目的。

如评论中所述,我也使用 C# 工作了将近 10 年,还没有看到有人重载运算符。

关于c# - C# 中的重载运算符实际上是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43548897/

相关文章:

Ruby 没有选择正确的重载方法

c# - 工厂返回界面

c# - 反射类型与类型描述符

c++ - 重载运算符是其他类中的新增功能

c++ - 派生类使用基类中的重载运算符时出错

c++ - 运算符重载 分数

c# - Windows.System.UserProfile.UserInformation.NameAccessAllowed 总是返回 false

c# - 错误和异常处理

c# - 隐式转换和 null 的问题

c++ - 重载 << 运算符 : struct with vector of structs