1. ホーム
  2. c#

[解決済み] ミュータブル構造体はなぜ "悪 "なのか?

2022-03-19 15:28:34

質問

SOでの議論を見ていると、ミュータブル構造体は「悪」であるという意見を何度か読みました。 質問 ).

C#のミュータビリティと構造体の実際の問題点は何でしょうか?

解決方法は?

構造体は値型であるため、受け渡し時にコピーされます。

したがって、コピーを変更すると、元のコピーではなく、そのコピーだけを変更することになり、周囲にある他のコピーは変更されません。

構造体が不変であれば、値で渡された結果の自動複製はすべて同じになります。

変更したい場合は、変更したデータで構造体の新しいインスタンスを作成することで、意識的に行う必要があります。(コピーではありません)