Tag: 比较运算符

为什么比较运算符不会自动超载IComparable?

当一个类是IComparable ,由于CompareTofunction,我们知道所有重载< , >和==运算符的东西,对吧? 那么为什么这些不会自动超载? 看看下面的例子: public class MyComparable : IComparable { public int Value { get; } public MyComparable(int value) { Value = value; } public int CompareTo(MyComparable other) => Value.CompareTo(other.Value); } 我想知道为什么这样的东西默认不起作用: MyComparable obj1 = new MyComparable(1), obj2 = new MyComparable(2); if (obj1 < obj2) { /*…*/ } 我们知道obj1 < obj2 == true因为我们实现了CompareTo […]

C#Nullable Equality Operations,为什么null <= null解析为false?

为什么在.NET中呢? null >= null 解析为假,但是 null == null 解析为真? 换句话说,为什么不是null >= null等效于null > null || null == null null > null || null == null ? 有人有正式答案吗?