C#中的相等性判断(RefrenceEquals、Equals)

本文详细解析了C#中如何进行相等性判断,包括ReferenceEquals方法和Equals方法的区别与应用场景,帮助开发者理解何时使用这两种方法来确保正确的对象比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	///
        ///等同性的数学定义:自反、对称、传递
        ///
        
        ///
        /// 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值