我正在尝试实现Equalsfrom IEqualityComparer<T>,如果 T 是引用类型,ReferenceEquals则返回,如果 T 是值类型,Equals则返回。
所以我尝试这样做:
public bool Equals(T x, T y) {
if (typeof(T).IsValueType)
return Equals(x, y);
return ReferenceEquals(x, y);
}
我的推理是,如果x和y不是值类型,那么它们必须是引用类型,所以ReferenceEquals不应该装箱任何东西。
但我收到此警告:
装箱分配:从值类型“T”到引用类型“对象”的转换
慕村9548890
相关分类