为什么IntPtr没有实现IEquatable <intptr>?</intptr>

时间:2015-02-13 14:37:11

标签: c# boxing intptr iequatable

我在我的应用程序中看到了相当多的垃圾收集器停顿,因此我对其进行了分析,并发现我的方法生成了大量垃圾,只做了这个:

return Address.Equals(other.Address)

其中AddressIntPtr

事实证明IntPtr并没有像大多数值类型那样实现IEquatable<T>,因此我每次都在装other.Address

IntPtr是否有充分理由不实施该界面,或者这是否是一种疏忽?

1 个答案:

答案 0 :(得分:2)

这是一种疏忽。 IEquatable<T>存在后,在{...}}中添加了IntPtr。 BCL中有一些地方没有正确升级,似乎没有人有兴趣修理它们。

只需使用==即可。无论如何它都是更好的风格,因为它清楚地表明了你的意图。

相关问题