可変構造体はなぜ「悪」なのか?質問する

可変構造体はなぜ「悪」なのか?質問する

SOでの議論に続いて、私はすでに可変構造体は「悪」であるという発言を何度も読んでいます(この回答のように質問)。

C# の可変性と構造体に関する実際の問題は何ですか?

ベストアンサー1

構造体は値型であり、渡されるときにコピーされることを意味します。

したがって、コピーを変更する場合、変更されるのはそのコピーのみであり、オリジナルや、存在する可能性のある他のコピーは変更されません。

構造体が不変の場合、値渡しによって生成されるすべての自動コピーは同じになります。

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

おすすめ記事