Consider the following piece of code:
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 构造函数创建的,但可以通过调用 val.GetType() 推断出来,因此简单的 MyClass2 并不适用。
as
强制转换呢? - Shmiddtyprivate void HandleSomeMessage(MyClass cl)
我想能够调用一个泛型方法void HandleMessageGeneric(T cl)
并使用实际的 cl 类型。 - Gena Verdel