You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何通过变量字段名获取动态实例的ACUnits_List?

解决方法

因为你用dynamic声明实例时,直接写instance.field会被解析为查找名为field的字段,而非变量field存储的目标字段名;同时dynamic实例本身不会直接提供反射相关方法,得通过反射API实现动态字段访问。

具体实现代码如下:

string field = "ACUnits_List";
// 获取对应字段的信息,若为非公共字段需添加BindingFlags参数匹配权限
FieldInfo fieldInfo = instance.GetType().GetField(field);
// 获取字段值并转换为目标类型
List<ACUnit> acList = (List<ACUnit>)fieldInfo.GetValue(instance);

补充说明:

  • instance.GetFields()报错是因为GetFields()是Type类的方法,不是实例方法,正确用法是instance.GetType().GetFields()
  • instance[field]报错是因为你的ACUnits类未实现索引器,因此不能通过索引方式访问字段

内容的提问来源于stack exchange,提问作者KWallace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:39:25