1
4
课本答案: 运算符重载不是公共语言规范的一部分,这意味着编译器编写者可以随意忽略或仅在他们认为需要时部分支持它。作为一名图书馆作家,你有责任为人们提供与班级合作的其他方式。 务实的回答: 因为一开始做这件事是愚蠢的。为进行比较,显式创建了op greaterthan方法。你不应该用它来做“有趣”的事情,比如把两个术语具体化。CLR只允许您滥用它,因为它需要支持像C++这样的传统语言。 顺便说一句,把两件事结合在一起会有一种超负荷的情况。它被称为op_concatenate。你真的应该考虑使用它而不是更大。 编辑 几乎很好的答案: 在f中,我提到的concatation操作符是^。 我称之为几乎好的答案,因为我不太确定C是否支持它。我认为只有在vb和f中才允许使用。 编辑第2页 似乎F并不是为了纪念^过载。 编辑第3页 世界跆拳道在这里进行吗?F根本不尊重>操作员。当然,您可以重载它,它会正确地发出比方法更大的操作,但它忽略了它。它甚至不尝试使用op greaterthan,而是查找System.IComparable接口。 更糟糕的是,这是一个运行时检查。尽管它可以静态地确定类foo不实现IComparable,但它仍然继续进行并无论如何编译代码。 |
2
2
直观地说,比较运算符
你可以回答这个问题
当它可以返回任何其他东西时,比如
再也没有意义了。
对象(元组、列表等)通常实现
*注意事项: imho,这不是可以比较的最佳解决方案 任何 对象,然后在运行时引发异常。Haskell使用typeclasses更好地解决了这个问题。
比较不可编译的类型将在编译时失败。 |
3
0
您不必使用<和>运算符。求解器基础服务模型类有更大和更少的方法,您应该能够使用这些方法。 |
Noah Wilder · Swift中元组的操作符重载 6 年前 |
Salman · 指向具有数组索引运算符重载的类的指针 6 年前 |
Nom OnTheCookie · 使用向量重载C++输出 6 年前 |
J. Doe · C++重载:从友元函数切换到成员函数 6 年前 |
Ana · 使用操作符重载添加存储在vector中的类对象 6 年前 |
Matthew · 重载运算符|用于固定大小的阵列? 6 年前 |
Martin Žid · 重载运算符+=具有两个类 6 年前 |