dynamic类型

简单示例

dynamic expando = new System.Dynamic.ExpandoObject(); //动态类型字段 可读可写
expando.Id = 1;
expando.Name = "Test";
string json = Utils.ConvertJson.JsonEncode(expando);  //输出{Id:1,Name:'Test'}

//动态添加字段

List<string> fieldList = new List<string>() { "Name","Age","Sex"}; //From config or db

dynamic dobj = new System.Dynamic.ExpandoObject();

var dic = (IDictionary<string, object>)dobj;
foreach (var fieldItem in fieldList)
{
  dic[fieldItem] = "set "+fieldItem+" value";  /*实现类似js里的 动态添加属性的功能

var obj={};
                                                                        var field="Id";

eval("obj."+field+"=1");

                                                                        alert(obj.Id); //1  */


}
var val = dobj.Name; //“set Name value”

var val1=dobj.Age;//”set Age value“

枚举该对象所有成员

foreach (var fieldItem in (IDictionary<String, Object>)dobj)
{
  var v = (fieldItem.Key + ": " + fieldItem.Value);
}

匿名类

//var aaaa = new {Id=1,Name="Test"}; //匿名类字段只读不可写

dynamic aaaa = new {Id=1,Name="Test"}; //匿名类字段只读不可写
aaaa.Id = 2; //不可写 报错无法为属性或索引器“<>f__AnonymousType1<int>.Id”赋值 - 它是只读的

dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject("{Name:'aa',Sex:'Male',Age:11}");
var name = obj.Name.Value; //aa

原文地址:http://www.cnblogs.com/xuejianxiyang/p/4964739.html

转载于:https://www.cnblogs.com/xuejianxiyang/p/4964739.html

c# dynamic动态类型和匿名类相关推荐

  1. .Net 4.0 之 Dynamic 动态类型

    本文主要旨在与网友分享.Net4.0的Dynamic 对Duck Type 的支持.     一..net4.0主要新特性 .Net4.0在.Net3.5基础上新增的主要特性有:可选参数.命名参数和D ...

  2. Dynamic动态类型

    什么是动态类型 了解什么是动态类型首先我们了解静态类型,在我们平时定义一个int i=1就是静态类型,静态类型就是我们在没有编译的时候已经明确的知道他是一个int类型,动态语言是我们在运行时才会知道的 ...

  3. C#中动态类型dynamic用法浅析

      动态类型dynamic是微软在.net framework 4.0开始引入的,其目的是在程序编译过程中忽略对类型的检查,等到运行时刻再明确定义的对象的类型.   使用dynamic类型可以简化代码 ...

  4. 动态类型var和dynamic和传统确定类型区别和效率

    伴随着vs2010的出现,c#4.0的诞生,与之而来的动态类型dynamic更是给net程序员们锦上添花,为自己的程序书写上带来了给大的便利.可到底怎么用,好不好用,效率这么样,也许是大家最迫切关注的 ...

  5. 06-02 C# 匿名类

    目录 一.诞生 二.普通类的实例化 三.object匿名类 1.优点 2.缺点 3.思考 四.动态类型匿名类 1.优点 2.缺点 3.思考 五.弱类型(不确定类型)匿名类 1.优点 2.缺点 3.思考 ...

  6. var和dynamic的应用 var、动态类型 dynamic 深入浅析C#中的var和dynamic ----demo

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. 委托 匿名类 var隐式类型 匿名方法

    委托 委托是一个类  它定义了方法的类型  实现了讲一个方法当做另一个方法的参数来传递 (委托的一个有趣且有用的属性是,他不知道也不关心所引用的方法的类 只关心引用的方法是否具有与委托相同的参数和返回 ...

  8. PHP版本区别5与7:性能 64位 运算符 输入类型 返回类型 匿名类;7改进1.变量存储空间2.数组结构3.函数调用机制

    1.性能提升:PHP7比PHP5.0性能提升了两倍. 2.全面一致的64位支持. 3.以前的许多致命错误,现在改成抛出异常. 4.PHP 7.0比PHP5.0移除了一些老的不在支持的SAPI(服务器端 ...

  9. Linq之隐式类型、自动属性、初始化器、匿名类

    目录 写在前面 系列文章 隐式类型 自动属性 初始化器 匿名类 总结 写在前面 上篇文章是本系列的小插曲,也是在项目中遇到,觉得有必要总结一下,就顺手写在了博客中,也希望能帮到一些朋友.本文将继续介绍 ...

最新文章

  1. 个推无法获取个推id_最新个推Android 推送 SDK Maven 集成
  2. foxmail提示不知道这样的主机_不知道和婚礼策划师沟通时谈哪些?这样做让你高效备婚...
  3. python es 数据库 复合查询bool_es 入门-阿里云开发者社区
  4. MapReduce进阶:多MapReduce的链式模式
  5. 抗疫进展:多家科研机构联合筛选出五种可能有效的抗病毒药物
  6. 一个x86平台的spi flash驱动移植笔记
  7. php lumen timestamp,Lumen 5.4 时区设置
  8. The proxy server is refusing connections 怎么解决呢?
  9. 单片机(STM32)内部RC振荡器误差时间到底有多少
  10. pandas填充空数组_pandas | DataFrame基础运算以及空值填充
  11. html caption 靠左,HTML caption align 属性 | Paoo教程
  12. linux 密码字典生成,Linux下的字典生成工具Crunch 创造自己的专属字典
  13. 进入故障恢复控制台从此不需要密码
  14. 数字人民币红包体验如何?
  15. 苹果cmsV10仿优酷模板,最新自适应苹果cms模板
  16. Android OkHttp实现HttpDns的最佳实践(非拦截器)
  17. 分治法 —— 快速排序(递归,迭代,非递归)
  18. myeclipse2017下载安装与破解详细教程
  19. 网络测试工具netperf
  20. 代码管理工具系列介绍 Git的使用 和 Git ,Github,Gitlab,Gitee,Gitpod的区别

热门文章

  1. 网络安全之tcp阻截引擎 (一)
  2. MFC小笔记:上下控件
  3. Linux查看CPU型号及内存频率及其它信息的命令
  4. Linux下弹出CDROM的程序(参考网上程序)
  5. oracle:oracle基础知识(一)
  6. 95-34-030-Context-DefaultChannelHandlerContext
  7. 【Elasticsearch】es 报错 no such index index_not_found_exception
  8. 【kafka】kafka 2.3 关于控制Broker端入站连接数的讨论
  9. 【Logstash】logstash 报错 logstash cannot write event to DLQ reached maxQueueSize of
  10. 【MySQL】MySQL 8 Show innodb status 命令改变