1

Boo に変換する古い C# ライブラリがあり、演算子のオーバーロードを使用しています。その理由に触れないようにするために、Booで同じことを行う方法を探しています。

これは次の形式を取ります。

public static bool operator <(Duration duration, TimeSpan timespan) {...}

しかし、Boo は別の形式の演算子のオーバーロードを使用しており、'operator' キーワードはありません。

public static def op_LessThan(duration as Duration, timespan as TimeSpan) as bool:
    pass

( http://boo.codehaus.org/Operator+overloadingより)

次の二項演算子はオーバーロードできます。

  • op_追加
  • op_減算
  • op_Multiply
  • op_Division
  • op_モジュラス
  • op_べき乗
  • 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) {...}
4

1 に答える 1

2

(C#/.NET 側から) そうあるべきop_Inequalityですが、これが Boo でサポートされているかどうか、またはどのようにサポートされているかはわかりません。これは単なるドキュメント エラーであり、おそらく正常に動作すると思われます。

于 2011-04-01T00:42:17.747 に答える