使用get类型然后在C#中转换为该类型

Mat*_*att 3 c# reflection casting

我的代码如下:

var t = SomeInstanceOfSomeClass.GetType();
((t)SomeOtherObjectIWantToCast).someMethodInSomeClass(...);
Run Code Online (Sandbox Code Playgroud)

那不行,编译器返回关于(t)说预期的Type或名称空间的错误.你怎么能这样做?

我相信它确实很明显......

Sam*_*ell 8

C#4.0允许使用该dynamic类型.

也就是说,除非您正在进行COM互操作或为动态语言编写运行时,否则几乎肯定不希望这样做.(Jon你还有其他用例吗?)

  • 是的,一些:双重调度使得更简单(在编译时安全性的损失); 使用带有泛型的运算符; 调用泛型方法,其中只在执行时才知道类型更简单. (2认同)