4
我还无法访问C#4.0预览。但我很好奇,C#4.0运行时在以下情况下调用重载方法时会做什么?它是否解决了泛型重载或专用重载。使用动态类型在C#4.0中重载分辨率
public class Foo<T>
{
protected string BarImpl(T value) { return "Bar(T) says: " + value.ToString(); }
protected string BarImpl(int value) { return "Bar(int) says: " + value.ToString(); }
public string Bar(T value)
{
dynamic foo = this;
return foo.BarImpl(value);
}
}
public static void Main(string args[])
{
var f = new Foo<int>();
Console.WriteLine(f.Bar(0));
}
我读过这个系列......没有一个类似于我的例子的明确情况,所以我不能确定。我从我读到的印象中得到Bar(int)会被调用。这将是非常好的,因为它会使我有可能使用动态作为实现C#泛型类型专用化的一种方式......直到现在,一直没有那么容易(或优雅)的事情。 – LBushkin 2009-06-12 15:24:59