C#优化重载方法是否在级联中调用?

C#优化重载方法是否在级联中调用?,c#,optimization,overloading,C#,Optimization,Overloading,我有一些这样的代码: class MainApplication { protected static string _since; protected static void updateSince() { MainApplication.updateSince(DateTime.Now); } public static void updateSince(DateTime since) { MainAppl

我有一些这样的代码:

class MainApplication {

    protected static string _since;

    protected static void updateSince()
    {
        MainApplication.updateSince(DateTime.Now);
    }

    public static void updateSince(DateTime since)
    {
        MainApplication.updateSince(since.ToString("yyyy-MM-dd HH:mm:ss"));
    } 

    public static void updateSince(string since)
    {
        // finally, doing something real
        MainApplication._since = since;
    }

    /* ... */  

}
我想知道C是否以及如何优化这种级联调用?

不,C根本没有优化东西。您要问的是,编译器是否对此进行了优化…
编译器不会对此进行“优化”。您可以在查看生成的IL代码时验证这一点。

不,C#根本不会优化内容。您要问的是,编译器是否对此进行了优化…

编译器不会对此进行“优化”。您可以在查看生成的IL代码时验证这一点。

您考虑了哪种优化?为什么你认为会有任何优化?这只是重载了相互调用的方法。你想做什么样的优化?为什么你认为会有任何优化?它只是重载了相互调用的方法。+1-我的意思是,编译器会优化什么?将
updateSince()
作为字符串调用到带有now的重载中的行为?是的,我想OP会询问编译器是否进行某种内联。使用ILSpy()表明不同的方法都是单独调用的。很抱歉,我的精度不够;)。这正是我要问的。我想他是在问JIT是否会优化这里的某些东西(但不确定这里应该是什么“东西”)。毕竟C#编译器(实际上我只确定javac,但我假设它是类似的)最多不做/只做简单的优化。+1-我的意思是,编译器会优化什么?将
updateSince()
作为字符串调用到带有now的重载中的行为?是的,我想OP会询问编译器是否进行某种内联。使用ILSpy()表明不同的方法都是单独调用的。很抱歉,我的精度不够;)。这正是我要问的。我想他是在问JIT是否会优化这里的某些东西(但不确定这里应该是什么“东西”)。毕竟C#编译器(实际上我只确定javac,但我认为它是类似的)最多只做简单的优化。