Перегрузка операторов в Boo - op_NotEqual?

У меня есть старая библиотека 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_Addition
  • op_Subtraction
  • 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) {...}

1 ответ

Решение

Так должно быть op_Inequality (со стороны C#/.NET) - но я не знаю, поддерживается ли это в Boo. Я подозреваю, что это просто ошибка документации, и, вероятно, будет работать нормально.

Другие вопросы по тегам