我有一个旧的 C# 库,我正在转换为 Boo,它使用运算符重载。为了不了解原因,我正在寻找一种在 Boo 中做同样事情的方法。
这采取以下形式:
public static bool operator <(Duration duration, TimeSpan timespan) {...}
但是,Boo 使用不同形式的运算符重载,并且没有“运算符”关键字。
public static def op_LessThan(duration as Duration, timespan as TimeSpan) as bool:
pass
(来自http://boo.codehaus.org/Operator+overloading)
这些二元运算符可以重载:
- op_Addition
- op_减法
- op_Multiply
- op_Division
- op_Modulus
- op_Exponentiation
- op_Equality
- op_LessThan
- op_LessThanOrEqual
- op_GreaterThan
- op_GreaterThanOrEqual
- op_Match
- op_NotMatch
- op_Member
- op_NotMember
- op_BitwiseOr
- op_BitwiseAnd
但我在该列表中没有看到类似 op_NotEqual(!=) 的内容。这些方法是否等同于上述 C# 代码?如果是这样,什么相当于
public static bool operator !=(Duration duration, TimeSpan timespan) {...}