是否可以在 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。