1

アプリケーションでかなり大量のガベージ コレクターの停止が見られたので、プロファイルを作成したところ、これ以上のことを行わない私のメソッドによって大量のガベージが生成されていることがわかりました。

return Address.Equals(other.Address)

はどこAddressにありますかIntPtr

ほとんどの値型のように実装されてIntPtrいないことが判明したため、毎回IEquatable<T>ボクシングをしていました。other.Address

そのインターフェースを実装しない正当な理由はありますかIntPtr、それとも見落としですか?

4

1 に答える 1

2

見落としです。IEquatable<T>が存在した後、.NET 2.0 で追加されましたIntPtr。BCL には適切にアップグレードされていない箇所がいくつかありますが、誰もそれらを修正することに関心を持っていないようです。

を使用するだけ==です。それはあなたの意図を明確に示すので、とにかくスタイルが良い.

于 2015-02-13T15:14:05.277 に答える