- 4
- 0
- 约9.18千字
- 约 70页
- 2019-08-03 发布于江苏
- 举报
动态站点对象通过CallSiteT.Create方法创建, C#编译器会为其指定一个派生自CallSiteBinder的对象(称为“动态站点绑定对象”)作为其参数。 动态站点绑定对象的主要工作是将代码中的动态表达式(本例中为d++)转换为一棵“抽象语法树(Abstract Syntax Tree,AST)”,这棵语法树被称为“DLR Tree”,扩充自.NET 3.5引入的LINQ表达式树。 将动态表达式转换为DLR表达式树的过程,称为“绑定(Bind)”,完成这一工作的对象就是“动态站点绑定对象(CallSiteBinder)”。 DLR探秘(2)——动态站点对象与绑定 * DLR探秘(3)——动态表达式的最终形式 object d = 100; object CS$0$0000 = d; //创建动态调用站点对象 if (p__Site1 == null) p__Site1 = CallSiteFuncCallSite, object, object.Create(……); //完成动态调用 d = p__Site1.Target(p__Site1, CS$0$0000); dynamic d = 100; d++; C#编译器 * 示例项目:IsDynamicSlowly 动态代码的性能问题 DLR拥有一个3级的缓存架构,最多可缓存100个动态调用的解析
您可能关注的文档
最近下载
- 重症护理学专科护士培训基地建设标准.doc VIP
- 多功能工具机 第3部分:技术条件.docx VIP
- Q_SY 05593-2018 输油管道站场储罐区防火堤技术规范.docx VIP
- 《防盗安全门通用技术条件》国家标准解读.pdf VIP
- 2026年中国式现代化理论简答试题(附答案).docx VIP
- 劳动课《菊花扦插》教学设计教案.docx VIP
- 部编版三年级上册语文【第五单元】全单元教学设计以及教案完整版.docx VIP
- 《阻燃环氧树脂》课件.pptx VIP
- 聚合物的阻燃改性与应用.ppt VIP
- 2025-2026学年江苏省常州市北郊高级中学高一(上)期中数学试卷【答案版】.pdf VIP
原创力文档

文档评论(0)