【发布时间】:2011-04-29 18:39:22
【问题描述】:
我还没有升级到 4.0,否则我会自己检查代码 sn-p。但我希望有专家对此发表评论。
在下面的代码中,是否会在运行时调用适当的Print() 方法?在 C# 2010 中这样称呼它是否合法?
public void Test()
{
dynamic objX = InstantiateAsStringOrDouble();
Print(objX);
}
public void Print(string s)
{
Console.Write("string");
}
public void Print(double n)
{
Console.Write("double");
}
谢谢!
【问题讨论】:
-
您希望它如何决定调用哪个 Print?我认为你最好阅读更多关于
dynamic的信息。 -
当然是在运行时。感谢您的建议,我已经这样做了! :-)
-
它确实有效,但要小心动态。它可以解决很多问题,同时也让你很头疼 :-) 基本上你获得了运行时灵活性,但失去了所有编译器时间检查。