繁体   English   中英

将动态变量强制转换为给定的Type

[英]Cast a dynamic variable to a given Type

我有一个动态变量,我根据上下文存储一个可以是多种类型的对象(这里是FooBar

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM