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 ) );
}