- 2
- 0
- 约1.49万字
- 约 18页
- 2018-09-28 发布于江苏
- 举报
跟随.NET 4.0脚步3
dynamic:
用于生成一个动态的类型,在代码中可以通过不同的实例化类来变成不同的对象,例如:
注:对于dynamic类型有两个限制。动态对象不支持扩展方法,匿名函数(Lambda表达式)也不能用作动态方法调用的参数,因此LINQ不能用于动态对象。大多数LINQ调用都是扩展方法,而Lambda表达式用作这些扩展方法的参数。
dynamic实质:
C#编译器做了很多工作,以支持动态类型。在生成的代码中,会看到对System.Runtime.CompilerServices.CallSite和System.Runtime.CompilerServices.CallSiteBinder类的引用。
CallSite是在运行期间处理查找操作的类型。在运行期间调用动态对象时,必须找到该对象,看看其成员是否存在。CallSite会缓存这个信息,这样查找操作就不需要重复执行。没有这个过程,循环结构的性能就有问题。
CallSite完成了成员查找操作后,就调用CallSiteBinder()方法。它从CallSite中提取信息,并生成表达式树,来表示绑定器绑定的操作。
显然这需要做许多工作。优化非常复杂的操作时需要格外小心。显然,使用dynamic类型是有用的,但它是有代价的。
dynamic VS object:
很多情况下,初见dynamic会觉得和System.object有很多表现上的相似
您可能关注的文档
- 货运 航海第章危险货物运输.ppt
- 质子治疗方式对肿瘤患者是否有用.pptx
- 质量强企促进量强省建设讲座课件---杨.ppt
- 质量控制工具 拉图的应用.ppt
- 质量评估3.doc
- 质量评估2.doc
- 购买三类房屋当权益无从保障.pptx
- 贯彻职业病防治预防职业病发生.ppt
- 贯彻落实纲要精神提高人才培养质量3.ppt
- 贴近生活实际,注自己.doc
- 2026年河南省新乡市高考数学模拟试卷+答案解析.pdf
- 2026年河南省郑州市第二高级中学等校高考数学考前质检试卷+答案解析.pdf
- 2026年河南省郑州市外国语学校高考数学一模试卷+答案解析.pdf
- 2026年河南省华大新高考联盟高考数学联考试卷(5月份)+答案解析.pdf
- 2026年河南省华大新高考联盟高考数学模拟试卷(4月份)+答案解析.pdf
- 穿行测试(参考模板)(2)(1).pptx
- 2025-2026学年福建省厦门三中高三(下)学情调研数学试卷(4月份)+答案解析.pdf
- 2025-2026学年广东省广州市越秀区执信中学高三(下)段考数学试卷(5月份)+答案解析.pdf
- 2025-2026学年吉林省长春市吉大附中实验学校高三(下)期中数学试卷+答案解析.pdf
- 2026年海南省海口市琼山中学高考数学模拟试卷(二)(5月份)+答案解析.pdf
最近下载
- 通信网络安全与防护-第五章-网络防护技术.pptx VIP
- 通信网络安全与防护-第一章--概--述.pptx VIP
- 通信网络安全与防护-第三章--网络设备安全.pptx VIP
- 学堂在线 教育学导引 章节测试答案.docx VIP
- 浦发银行广州分行2027届校园招聘考试模拟试题及答案解析.docx VIP
- 某旅游景区安全生产风险分级管控信息公告栏(玻璃栈道、台阶、步游道、登山、水边山(岸)边崖边、湖面桥、山体、一线天、野生动物、森林、大型活动举办地、亭、阁、景观长廊、餐饮、商铺等).docx VIP
- 2025甲状腺功能亢进症诊疗指南实用版.pdf
- 《直线窄带式分拣机》标准文本.pdf VIP
- 2016-2020年成人高考《高起点数学(文)》考试真题合集(含解析).pdf VIP
- 深度学习及应用 课件 第八章 Transformer网络.pptx
原创力文档

文档评论(0)