繁体   English   中英

在Visual Studio 2010中预构建

[英]Pre-build in Visual Studio 2010

是否有可能在Pre-build事件中运行C#函数并将函数调用替换为常量值?

例如:

class A{
    A(){
        var aVar = B.Func1("a");
    }
}
class B{
    static String Func1(String str){
        //Do some things
        return str;
    }
}

预建活动后:

class A{
    A(){
        var aVar = "A";
    }
}
class B{
    public static String Func1(String str){
        //Do some things
        return str;
    }
}

这与“预构建事件”无关。 这是编译期间编译器可能会或可能不会应用的优化。

在定位.NET Framework时,您需要添加额外的优化复杂性层。 当您最初将代码编译为IL时,C#编译器不会执行许多可能的优化,而是在代码执行之前(当IL编译为本机代码时)由JIT编译器执行。

是的,JIT编译器肯定会尽可能地应用这样的简单优化来内联函数调用。 对于任何优化器来说,这都是低调的结果。 (虽然,有些情况下内联函数可以使事情变慢 ,优化器通常足够聪明地认识到这一点。你应该始终相信优化器,而不是试图强迫它做认为合理的事情。它通常比您。)

您的重点应该是编写清晰易读/维护的代码。 不要担心如何优化它,直到你分析它并确定它太慢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM