1

当我注意到虚函数时,我今天正在实现自己的属性Match。正常的实现Match是调用Equals,那么为什么它首先存在呢?

该文档说明了以下内容Match

在派生类中重写时,返回一个值,该值指示此实例是否等于指定对象。

该文档说明了以下内容Equals

返回一个值,该值指示此实例是否等于指定对象。

4

2 回答 2

1

该方法在 MSDN 中的备注部分解释了它们的区别:

此方法确定一个属性是否等于另一个。它的默认实现与 Equals 相同,后者执行值和引用比较。重写此方法以实现对属性值的支持,例如标志或位字段,这些属性值由本身有意义的组件组成。

例如,考虑一个属性,它的值是一个二进制字段,分为标志位字段。此属性的两个实例具有一个共同设置的标志,而所有其他标志不同。Equals 方法无法确定两个实例是否具有相同的标志集,但 Match 方法可以。

于 2012-10-29T20:46:28.577 回答
0

匹配文档中:

考虑一个属性,它的值是一个二进制字段,分为标志位字段。此属性的两个实例具有一个共同设置的标志,而所有其他标志不同。Equals 方法无法确定两个实例是否具有相同的标志集,但 Match 方法可以。

于 2012-10-29T20:46:36.677 回答