1

BCL チームが UnmanagedMemoryStream のコンストラクターで IntPtr の代わりに Byte* を使用することを選択した理由を知っている人はいますか? これにより、型を構築するために安全でないコンテキストを使用する必要があります。彼らは IntPtr を使用できたようで、安全でないコンテキストを強制することはなかったでしょう。

4

1 に答える 1

2

その方が安全だからだと思います。彼らが IntPtr を使用していた場合、コンストラクターは任意のガベージ値で呼び出される可能性があります。byte* を使用すると、メモリが有効で固定されていることを確認するコンパイラに少なくともショットがあります。IntPtr を byte* にキャストするのは非常に簡単ですが。

于 2010-01-11T17:20:07.080 に答える