我有一个动态变量,我根据上下文存储一个可以是多种类型的对象(这里是Foo和Bar)
dynamic myvar;
myvar = new Foo();
//or
myvar = new Bar();
Run Code Online (Sandbox Code Playgroud)
Foo和Bar包含不同的方法.为了能够访问myvar的方法,我认为可以使用像
(Foo)myvar.mymethodoffoo();
(Bar)myvar.mymethodofbar();
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我得到(动态表达式)此操作将在运行时在代码编辑器中解决.
那么,我如何构建动态对象以从编辑器中获取可用的方法和属性?
先谢谢了.
SLa*_*aks 10
强制转换操作((SomeType)x)的优先级低于..
因此,您的代码被解析为(Bar)(myvar.mymethodofbar())- 在方法调用之后进行转换.
您需要添加括号:
((Bar)myvar).mymethodofbar();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2859 次 |
| 最近记录: |