Скажем, у меня есть тип, который реализует IComparable.
Я бы счел разумным ожидать, что операторы ==
, !=
, >
, <
, >=
и <=
будут "просто работать" автоматически, вызывая CompareTo, но вместо этого у меня есть чтобы переопределить их все, если я хочу их использовать.
С точки зрения дизайна языка есть веская причина, по которой это было сделано так? Есть ли случаи, когда вы действительно полезны для A>B
вести себя по-другому с Compare(A,B)>0
?