为避免装箱,比较泛型是否相等的最佳方法是
EqualityComparer<T>.Default。这方面
IEquatable<T>(没有拳击)以及
object.Equals,都应处理所有
Nullable<T>“解除”的细微差别。因此:
if(EqualityComparer<T>.Default.Equals(obj, default(T))) { return obj;}这将匹配:
- 类的null
- 空的(空)
Nullable<T>
- 零/假/等其他结构

为避免装箱,比较泛型是否相等的最佳方法是
EqualityComparer<T>.Default。这方面
IEquatable<T>(没有拳击)以及
object.Equals,都应处理所有
Nullable<T>“解除”的细微差别。因此:
if(EqualityComparer<T>.Default.Equals(obj, default(T))) { return obj;}这将匹配:
Nullable<T>