///
///等同性的数学定义:自反、对称、传递
///
///
/// RefrenceEqual:
/// static bool ReferenceEquals(object objA, object objB);
/// 值类型调用永远返回false(原因在于装箱)
/// 如果两个变量指向同一个对象(具有相同的对象标识),则为true
/// 对象标识:系统创建的每一个对象在创建时系统都会分配一个唯一
/// 的对象键(一个整数值,保存在Object的一个内部变量中),
/// 这个值在Object的构造函数中设置,并且之后不会再更改,
/// Object的GetHashCode()会返回该值做散列码
///
///
/// Equals:
/// static bool Equals(object objA, object objB)
/// 当不知道两个变量的运行时类型时使用此方法,不管值类型还是引用类型
/// 该方法会将判断的具体操作委托给其中的一个类型来处理
/// 其实现如下:
///
public static bool Equals(object objA, object objB)
{
if (Object.ReferenceEquals(objA, objB))
return true;
if (Object.ReferenceEquals(objA, null) || Object.ReferenceEquals(objB, null))
return false;
r
C#中的相等性判断(RefrenceEquals、Equals)
最新推荐文章于 2021-07-01 18:03:49 发布