C#の変数構造:なぜ「悪」と見なされるのですか?
C#の構造は値タイプです。つまり、割り当てられたときにコピーされることを意味します。これにより、変数構造を処理する際に課題が生じます。
変数構造により、作成後にデータを変更できます。ただし、それらは値によってコピーされるため、コピーを変更することは元の構造やその他の既存のコピーに影響しません。この動作は、特にマルチスレッド環境で予期しない結果につながる可能性があります。たとえば、
座標を示す可変構造があるとします。この構造に変数を割り当て、X属性を変更しようとする場合:
<code class="language-csharp">public struct Coordinate { public int X; public int Y; }</code>
したがって、
一般に、可変構造の使用を避けることをお勧めします。代わりに、作成後にデータを変更できない不可能な構造を選択します。これにより、予測可能な動作が保証され、値タイプのシナリオの潜在的な偶発的なデータ損傷が排除されます。<code class="language-csharp">Coordinate coordinate = new Coordinate { X = 0, Y = 0 }; coordinate.X = 1;</code>
以上がC#で変動する構造体が「悪」と見なされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。