Ich habe noch keinen Zugriff auf die C# 4.0-Vorschau. Aber ich bin neugierig, was tut die C# 4.0-Laufzeit, wenn eine überladene Methode im folgenden Fall aufgerufen wird. Löst es auf die generische Überladung ... oder die spezialisierte Überladung.
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 ) );
}