c# - 编译器只会编译可以执行的代码吗?

标签 c# visual-studio-2010 compiler-construction

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

据我所知,编译器会处理这个问题,删除代码不会改变 EXE 文件的大小。这会永远是真的吗?删除所有不需要的代码会花费很长时间,所以我想知道是否需要这样做。

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

最佳答案

不,编译器也包含“死”代码。一个简单的原因是,并不总是能够准确地知道哪些代码会被执行,哪些代码不会被执行。例如,即使是从未被引用的私有(private)方法也可以通过反射调用,而公共(public)方法可以被外部程序集引用。

您可以使用工具来帮助您查找和删除未使用的方法(包括仅由其他未使用的方法调用的方法)。尝试 What tools and techniques do you use to find dead code?Find unused code让你开始。

关于c# - 编译器只会编译可以执行的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192076/

相关文章:

c# - 在包含汇编器的 Visual C++ 编译器上编译 C++ 的命令行调用?

c++ - CPP - 使用 * 或 and 返回地址

compiler-construction - 如何使用Closure Compiler @suppress多个警告?

java - JDK 编译错误

C#使用语句捕获错误

c# - LinkBut​​ton 没有在 OnClick 中调用 JavaScript 函数?

c# - WPF自定义控件依赖属性: cannot be string type?

c# - 如何使用查询语法来创建排列?

c# - 我可以使用 VS2010 PrivateObject 访问静态类中的静态字段吗?

java - 任何 Java 字节码生成指南?