c# - 更改 C# 动态类型的属性值
问题描述
有没有办法改变动态类型的属性值?代码示例:
dynamic result = new { Status = "WARNING", Modified = false, Message = string.Empty };
result.Status = "OK";
使用 C# 有可能吗?谢谢
解决方案
在 c# 4.0 中添加了动态数据类型。它用于避免编译时类型检查。编译器不会在编译时检查动态类型变量的类型,而是编译器在运行时获取类型。
尽管在大多数情况下,动态数据类型的行为类似于对象。
在上述示例中:您创建了一个类似于类类型的匿名类型变量,但它只能包含公共只读成员,因此在这种情况下您无法更改 result.Status 值。
解决问题:
我认为您应该使用像字典这样的通用集合代码可能如下所示:
var result = new Dictionary<string, object>() { {"Status", "Warning"}, {"Modified", false}, {"Message", string.empty} };
result ["Status"] = "Ok";
推荐阅读
- java - Oracle DB EE 19c/18c 的基本安装异常
- c++ - 绑定和提升功能
- jquery - AJAX 内容更新后在 Magento 2 中刷新 jquery 和淘汰赛绑定和观察者
- css - 位于具有相同宽度的图像上方的 div 周围的暗线
- php - 重定向过多问题 - 身份验证流程
- hyperledger-composer - 为什么后续 HLC 查询返回未定义?
- angular - IntelliJ - Angular - 如何仅绘制模块图?
- jsf - 在 ajax 事件 JSF 动作监听器中传递参数
- android - 以编程方式打开时,ScrollView 内的微调器正在关闭
- c# - 你好,我想获取第二个的值
如果 first 的值 是 Properties.Name (我需要同时获得它们)