C#で、ジェネリックをオーバーロードされたメソッドに渡し、それを非ジェネリックバージョンのメソッドに解決することは可能ですか?例えば:
class Program {
static void Main(string[] args) {
A a = new A();
Process(a);
Console.ReadLine();
}
static void Process<T>(T item) {
Writer(item);
}
// Writer methods...
static void Writer<T>(T item) {
Console.WriteLine("Type: " + item.GetType());
Console.WriteLine("You lose");
}
static void Writer(A item) {
item.Write();
}
}
class A {
public void Write() {
Console.WriteLine("You found me!");
}
}
このコードは以下を出力します:
タイプ:Foo.A
あなたは負けます
そして私は見たいです:
あなたは私を見つけた!
これを行う方法、または同様の方法はありますか?私はC#4を使用しています。