C#优化级联中调用的重载方法吗?
我有这样的一些代码:C#优化级联中调用的重载方法吗?
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代码时验证这一点。
+1 - 我的意思是,编译器会优化什么?现在调用'updateSince()'作为字符串的行为? – Tejs 2011-05-25 14:42:11
是的,我想OP会问,编译器是否做了某种内联。 – 2011-05-25 14:43:11
使用ILSpy(http://wiki.sharpdevelop.net/ilspy.ashx)显示不同的方法都是分开调用的。 – 2011-05-25 14:43:45
你在想什么样的优化?你为什么认为会有优化?它只是重载的方法互相调用。 – 2011-05-25 14:39:46