考虑以下代码:
class MyClass
{
}
class MyClass2 : MyClass
{
}
private void Foo(MyClass cl)
{
//cl is actually MyClass2 instance
TestGeneric(cl);
}
private void TestGeneric<T>(T val)
{
//do smth
}
调用Foo()后,TestGeneric 中的 T 是MyClass,而不是MyClass2。如何实现将val视为MyClass2实例?提前致谢。
更新:我实际上并不知道该对象是使用MyClass2 ctor 创建的,而是可以通过调用 val.GetType() 来推断这一点,因此简单的MyClass2将不起作用