C# ファイルの構造はコンパイルされるものに影響しますか?
たとえば、メンバーの順序 (ファイル内のどこに存在するかという観点から) は、コンパイルされたクラスに影響しますか?
C# ファイルの構造はコンパイルされるものに影響しますか?
たとえば、メンバーの順序 (ファイル内のどこに存在するかという観点から) は、コンパイルされたクラスに影響しますか?
先日読んだ Eric Lippert のブログ エントリによると、コンパイラは、同じソースの 2 つのコンパイルが同じ IL になることを保証していません。ただし、これはメソッドの順序に関するものではありませんでしたが、それも当てはまると思います。したがって、コンパイルされたクラスでメソッドの順序を想定することは安全ではないと思います。また、ソース ファイルのメソッドの順序付けと IL メソッドの順序付けの間に関連性があるとは思いません。
ほとんどの場合、順序は重要ではありませんが、匿名タイプの場合はそうではありません。
new{a=1,b=2}
別の互換性のないタイプを作成します
new{b=2,a=1}
メンバーの順序は保証されません。