编译器是否只编译可以执行的代码?

isp*_*iro 33 c# compiler-construction visual-studio-2010

我有一个类库,我只使用它的一部分.是否需要删除未使用的内容以缩小创建的代码的大小(在发布配置中)?

据我所见,编译器会处理这个问题,删除代码不会改变EXE文件的大小.这总是如此吗?删除所有不需要的代码需要很长时间,所以我想知道是否需要它.

更多信息:类库中的方法和类不是从执行代码调用的,而是由类库中的其他代码部分引用(它们本身从不被调用).

Tim*_* S. 35

不,编译器也包含"死"代码.一个简单的原因是,并不总是能够确切地知道将要执行和不执行的代码.例如,甚至可以通过反射调用从未引用的私有方法,并且外部程序集可以引用公共方法.

您可以使用工具来帮助您查找和删除未使用的方法(包括仅由其他未使用的方法调用的方法).尝试使用哪些工具和技术来查找死代码?找到未使用的代码,以帮助您入门.


nma*_*ait 6

这一切都得到了编译.无论是否被召唤.代码可以由外部库调用.

使编译器忽略代码的唯一方法是使用编译器预处理器指令.更多关于这里的人.