gpt4 book ai didi

c# - 将动态变量转换为给定类型

转载 作者:行者123 更新时间:2023-11-30 13:28:35 25 4
gpt4 key购买 nike

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

dynamic myvar;
myvar = new Foo();
//or
myvar = new Bar();

Foo 和 Bar 包含不同的方法。为了访问 myvar 的方法,我认为可以使用类似

(Foo)myvar.mymethodoffoo();
(Bar)myvar.mymethodofbar();

但它不起作用,我在代码编辑器中得到(dynamic expression) this operation will be resolved at runtime

那么,我如何转换动态对象以从编辑器中获取可用的方法和属性?

提前致谢。

最佳答案

转换操作 ((SomeType)x) 有一个 lower precedence..
因此,您的代码被解析为 (Bar)(myvar.mymethodofbar()) — 转换发生在方法调用之后。

需要加括号:

((Bar)myvar).mymethodofbar();

关于c# - 将动态变量转换为给定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4945990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com