文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

LINQ Expression tree是什么

2023-06-17 22:33

关注

这篇文章主要介绍LINQ Expression tree是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

LINQ Expression tree

一棵LINQ Expession tree在创建后就不可再改变。假如某个程序接收一棵Expression tree为参数,然后仅仅是用于生成别的形式的代码(例如SQL语句),那么这个不可改变性不会有什么影响。但如果一个程序想对一棵Expression tree进行修改该怎么办呢?解决方法是从来源的Expression tree复制出一棵新的树,在复制过程中根据自己的需要选择是直接复制原有节点还是创建修改了的节点。MSDN上有一个例子解释了如何实现这种需求,如何:修改表达式目录树。

更详细的LINQ Expression tree的讨论留待以后再说。先看代码:

digraph ExpressionTree {   node [fontsize=12, fontcolor=blue, font=Courier, shape=box]   // node declarations  lambda [label="Lambda Expression"]   anoFuncSig [label="Anonymous Function\nSignature"]  arrow [label="=>"]  anoFuncBody [label="Anonymous Function\nBody"]   impFuncSig [label="Implicit Anonymous\nFunction Signature"]  expr [label="Expression"]   impParam [label="Implicit Anonymous\nFunction Parameter"]  uexpr1 [label="Unary Expression"]   neg [label="-"]  uexpr2 [label="Unary Expression"]   id [label="Identifier:\nx"]   simpName [label="Simple Name:\nx"]   // relations   lambda -> anoFuncSig  lambda -> arrow  lambda -> anoFuncBody   {rank=same; anoFuncSig arrow anoFuncBody }   anoFuncSig -> impFuncSig  anoFuncBody -> expr   {rank=same; impFuncSig expr }   impFuncSig -> impParam  expr -> uexpr1 [style=dashed]   {rank=same; impParam uexpr1 }   impParam -> id  uexpr1 -> neg  uexpr1 -> uexpr2   {rank=same; id neg uexpr2 }   uexpr2 -> simpName  }

ast.dot: 

digraph ExpressionTree {   node [fontsize=12, fontcolor=blue, font=Courier, shape=box]  edge [fontsize=10, fontcolor=purple]  // node declarations  lambda [label="Lambda Expression"]   param [label="Parameter:\nx"]  body [label="Unary Expression\n(Negation)"]   param2 [label="Simple Name:\nx"]   // relations   lambda -> param [label="Signature"]  lambda -> body [label="Body"]   {rank=same; param body }   body -> param2  param -> param2 [label="(same node)", fontsize=8, style=dashed, dir=both]  }

以上是“LINQ Expression tree是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯