[英]Cast a dynamic variable to a given Type
我有一个动态变量,我根据上下文存储一个可以是多种类型的对象(这里是Foo和Bar )
dynamic myvar;
myvar = new Foo();
//or
myvar = new Bar();
Foo和Bar包含不同的方法。 为了能够访问myvar的方法,我认为可以使用像
(Foo)myvar.mymethodoffoo();
(Bar)myvar.mymethodofbar();
但它不起作用,我得到(动态表达式)此操作将在运行时在代码编辑器中解决 。
那么,我如何构建动态对象以从编辑器中获取可用的方法和属性?
先谢谢了。
(SomeType)x
操作( (SomeType)x
)的优先级低于.
。
因此,您的代码被解析为(Bar)(myvar.mymethodofbar())
- 在方法调用之后进行转换。
您需要添加括号:
((Bar)myvar).mymethodofbar();
((Foo)myvar).mymethodoffoo();
((Bar)myvar).mymethodofbar();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.