【发布时间】:2012-06-26 18:28:58
【问题描述】:
什么决定了程序集中类的顺序?
还有..有办法改变吗?
附加信息:您可以自己通过反射检查排序,也可以使用 ILDASM 之类的工具,禁用字母排序,然后您也会得到订单。
顺序似乎是由编译器以一种奇怪的方式确定的。
我已经尝试了一些事情。比如重命名类(顺序保持不变),还编辑 .csproj 文件以更改 .cs 文件的顺序。
我的主要关注点是 VS2008、C#、.net 3.5。
更新:我确实有一个订单很重要的场景(外部程序通过反射通过我的程序集) - 我需要特殊的订单。 除此之外 - 你是完全正确的 - 顺序真的不重要。
【问题讨论】:
-
您是否正在尝试解决或解决某些问题,或者这只是出于好奇。即有什么关系?
-
巧合的是,我相信@EricLippert 刚刚写了a blog post that's related to this。
-
你为什么要这样做?
-
顺序根本不重要,因为不能保证顺序。如果订单很重要,那么您的第三方代码已损坏。
标签: c# class compiler-construction .net-assembly