什么决定了程序集中类的顺序?
还有..有办法改变它吗?
附加信息:您可以自己通过反射检查顺序,或者您可以使用像 ILDASM 这样的工具,禁用字母排序,然后您也会得到顺序。
顺序似乎是由编译器以一种奇怪的方式确定的。
我已经尝试了一些方法.. 比如重命名类(顺序保持不变),还编辑 .csproj 文件以更改 .cs 文件的顺序。
我主要关注 VS2008、C#、.net 3.5。
更新:我确实遇到了一个顺序很重要的场景(外部程序通过反射通过我的程序集)——我需要特殊的顺序。 除此之外 - 你是完全正确的 - 顺序真的不重要。
最佳答案
我要在这里伸出我的脖子说这是一个实现细节,很可能由任何特定的编译器决定。
由于这是一个实现细节,您不应该或不必担心。当然,如果这真的很重要(看不出为什么),您总是可以编写自己的 IL。
我给你留下以下来自 Eric's blog 的引述:
Is compiling the same C# program twice guaranteed to produce the same binary output?
No.
关于c# - 程序集中类的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11213732/