kaixin001

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

先看看官方的解释:

== :

对于预定义的值类型,如果操作数的值相等,则相等运算符 (==) 返回 true,否则返回 false 对于 string 以外的引用类型,如果两个操作数引用同一个对象,则 == 返回 true 对于 string 类型,== 比较字符串的值。

用户定义的值类型可重载 == 运算符(请参见 operator)。 用户定义的引用类型也可重载 == 运算符,尽管在默认情况下,无论对于预定义的引用类型还是用户定义的引用类型,== 的行为都与上面描述的相同。 如果重载 ==,则还必须重载 != 在枚举时通常允许整型运算。

 

 

Equals:

 

确定指定的 Object 是否等于当前的 Object

 

 

public virtual bool Equals(
Object obj
)

 

 

Equals 的默认实现支持引用相等性(对于引用类型)和按位相等性(对于值类型)。 引用相等性是指进行比较的多个对象引用所引用的是同一个对象。 按位相等性是指进行比较的多个对象具有相同的二进制表示形式。

请注意,派生类型可以重写 Equals 方法以实现值相等性。 值相等性是指所比较的对象具有相同的值,即使它们具有不同的二进制表示形式也是如此。 例如,请考虑两个分别表示数字 1.10 和 1.1000 的 Decimal 对象。 Decimal 对象不具有按位相等性,因为它们具有不同的二进制表示形式,因此会考虑不同数量的尾随零。 但是,这些对象具有值相等性,因为在进行比较时尾随零无关紧要,数字 1.10 和 1.1000 被视为相等。

 

 

ReferenceEquals

确定指定的 Object 实例是否是相同的实例。

public static bool ReferenceEquals(
Object objA,
Object objB
)
返回值
类型:System.Boolean
备注

不像 Equals 方法和相等运算符,ReferenceEquals 方法不能被重写。 为此,如果要测试两个对象引用的平等,且不确定 Equals 方法的实现时,可以调用 ReferenceEquals 方法。 但是,请注意,如果 objA 和 objB 是值类型,则它们先装箱,然后传递给 ReferenceEquals 方法。

 

 

 

posted on 2012-08-31 20:11  kaixin001  阅读(179)  评论(0编辑  收藏  举报