==,ReferenceEquals, Static Equals, Instance Equals

Posted m苗子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了==,ReferenceEquals, Static Equals, Instance Equals相关的知识,希望对你有一定的参考价值。

1. ==

  • value type, 比较 value  (string 比较 value)
  • refrence type, 比较 reference
  • 两个都是null,也返回 true.

2. ReferenceEquals:  

  • 只比较Reference Type, 当两个参数是值类型时,先进性封装, 永远返回false. 
  • 其他等同于 ==

3. Static Equals

  • 首先用 == 比较 两个参数, 如果返回false,则使用instance Equals.

 

4. Instance Equals

  • 值类型装箱后,仍然调用ValueType的 instance Equals 方法, 比较类型和数值。
  • 引用类型,则比较Reference.

 

以上是关于==,ReferenceEquals, Static Equals, Instance Equals的主要内容,如果未能解决你的问题,请参考以下文章

Obj 是 null vs object.ReferenceEquals(Obj, null) [重复]

== equals object.ReferenceEquals

==,ReferenceEquals, Static Equals, Instance Equals

object.Equals与object.ReferenceEquals方法

相等性比较 (== ,Equals,ReferenceEquals)

C# 运算符 ==、StringBuilder.Equals、Object.Equals 和 Object.ReferenceEquals 之间的区别