代入演算子のオーバーロードを許可しないc#の設計説明を本当に知りたいです。有効なもの以上のものがあるに違いないと確信しており、それを知る必要があります。
答えは実際にここにあり、それはすべて理にかなっています(Jonに感謝します):
代入演算子のオーバーロードを許可しないc#の設計説明を本当に知りたいです。有効なもの以上のものがあるに違いないと確信しており、それを知る必要があります。
答えは実際にここにあり、それはすべて理にかなっています(Jonに感謝します):
.NET は、CLR がオブジェクトの参照を追跡するマネージド環境です。私たち、単なる人間の開発者が代入演算子をオーバーロードすることを許可されていたら、この管理された環境は意味を失い、参照の代入で好きなことを行うことができ、環境に大混乱をもたらす可能性があります。
代入演算子をオーバーロードできるようにしたい場合は、C++ などの管理されていない環境を使用して、メモリで必要なことを行います。好きなだけ漏らしてください。ただし、.NET にはありません。
少し考えてみてください。なぜこれが欲しいのですか?利点は何ですか?値型のセマンティクスが必要ですか? それでは、構造体を使用して、ケースを閉じます。すべての機能には関連するコストがあります。設計者は、この機能は実際には実装に値するほど有用ではないと感じていたに違いありません。
ここでの潜在的な問題は、認識されている利点をはるかに上回ります。