当前位置: 首页 > news >正文

深圳网站的设计公司十堰市有几家网站公司

深圳网站的设计公司,十堰市有几家网站公司,个人网站怎么备案,六安高端网站建设公司什么是表达式树来自微软官方文档的定义#xff1a;表达式树以树形数据结构表示代码。它能干什么呢#xff1f;你可以对表达式树中的代码进行编辑和运算。这样能够动态修改可执行代码、在不同数据库中执行 LINQ 查询以及创建动态查询。好不好玩#xff1f;表达式树还能用于动… 什么是表达式树来自微软官方文档的定义表达式树以树形数据结构表示代码。它能干什么呢你可以对表达式树中的代码进行编辑和运算。这样能够动态修改可执行代码、在不同数据库中执行 LINQ 查询以及创建动态查询。好不好玩表达式树还能用于动态语言运行时 (DLR) 以提供动态语言和 .NET Framework 之间的互操作性同时保证编译器编写员能够发射表达式树而非 Microsoft 中间语言 (MSIL)。哪里有应用ORM框架、工作流框架等使用到 Lambda 的代码。。。动态执行代码、动态组装代码等。创建表达式树创建表达式树有两种方式通过 lambda 表达式、通过 API。创建表达式树的意思是在此之前已经编写好每个结点最后使用代码将所有结点组合起来生成表达式树。示例(通过API创建表达式树)ParameterExpression a Expression.Parameter(typeof(int), i);ParameterExpression b Expression.Parameter(typeof(int), j);Expression r1 Expression.Multiply(a, b);ParameterExpression c Expression.Parameter(typeof(int), x);ParameterExpression d Expression.Parameter(typeof(int), y);Expression r2 Expression.Multiply(c, d);Expression result Expression.Add(r1, r2);ExpressionFuncint, int, int, int, int func Expression.LambdaFuncint, int, int, int, int(result, a, b, c, d);var com func.Compile();Console.WriteLine(表达式 func);Console.WriteLine(com(12, 12, 13, 13));Console.ReadKey();上面关于表达式树的代码很多以下这一步叫生成/创建表达式树。 ExpressionFuncint, int, int, int, int func Expression.LambdaFuncint, int, int, int, int(result, a, b, c, d);以下这句叫执行表达式树 var com func.Compile();其它代码是用于生成表达式树结点/逻辑。回归正题创建表达式树的两种方法。lambda 创建表达式树上面的表达式树示例是用于生成 ( i * j ) ( x * y )但是就这么简单的操作要写这么长实在不合理。而通过 lambda 可以这样写 ExpressionFuncint, int, int, int, int func (i, j, x, y) (i * j) (x * y);如果使用 lambda 生成表达式树 lambda 只能使用单行语句不能使用 if、for等语句。具体关于 Lambda 的表达式树后面其它文章有说明。通过 API 创建表达式树就是这样ExpressionFuncint, int, int, int, int func Expression.LambdaFuncint, int, int, int, int(result, a, b, c, d);两种方式左边的都是一样的区别在于等号右边。Expression TDelegate 上面示例的最终结果都是生成ExpressionFuncint, int, int, int, int func func 是表达式树变量。我们可以了解以下表达式树具有的方法和属性。用于生成表达式树结点的是 Expression 类型。那么创建的表达式树 func 是 ExpressionTDelegate类型。定义如下public sealed class ExpressionTDelegate : LambdaExpression具有方法如下Compile()将表达式树描述的 lambda 表达式编译为可执行代码并生成表示 lambda 表达式的委托。Compile(Boolean)将表达式树描述的 Lambda 表达式编译为已解释或已编译的代码并生成表示该 Lambda 表达式的委托。Compile(DebugInfoGenerator)将 lambda 编译到方法定义中。(Inherited from LambdaExpression)Update(Expression, IEnumerable)创建一个与此表达式类似的新表达式但使用所提供的子级。如果所有子级都相同则将返回此表达式。Accept(ExpressionVisitor)调度到此节点类型的特定 Visit 方法。例如MethodCallExpression调用 VisitMethodCall。由于 ExpressionTDelegate 继承了 LambdaExpression所以有很多属性方法也可以用。CanReduce指示可将节点简化为更简单的节点。如果返回 true则可以调用 Reduce() 以生成简化形式。Name获取 lambda 表达式的名称。NodeType返回此 Expression 的节点类型。Parameters获取 lambda 表达式的参数。ReturnType获取 lambda 表达式的返回类型。TailCall获取一个值该值指示是否将通过尾调用优化来编译 lambda 表达式。Type获取此 Expression 表示的表达式的静态类型。好了以上权当小笔记备忘目前先用不上后面慢慢来使用。解析/执行表达式树创建表达式树后就要执行表达式树。在此之前你需要了解 委托 DelegateFuncAction以及他们中间的关系。执行表达式树是这样子的 ExpressionFuncint, int, int, int, int func Expression.LambdaFuncint, int, int, int, int(result, a, b, c, d);var com func.Compile();var runRasult com(12, 12, 13, 13);func 只是一个表达式树我们把表达式树构建好后“要将表达式树转为代码”使用.Compile() 方法可以将表达式树生成一个 委托(例如上面的 com)。为了简洁上面使用了 var实际上是这样的 Funcint,int,int,int,int com func.Compile();四个参数一个返回值。var runRasult com(12, 12, 13, 13);C#里有语法糖对委托可以这样写以后后面都是这样写了能够缩成一行的代码就没必要写出两行。在 Vs 里面调试和查看表达式树可以看这里https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/expression-trees/debugging-expression-trees-in-visual-studio初学者不必纠结于这些了解一下本文内容记一下概要信息即可。
http://www.yutouwan.com/news/266098/

相关文章:

  • 网站产品图怎么做的访问网站慢
  • 网站开发背景论文网站如何做触屏滑动
  • 好的平面网站模板知春路网站建设
  • 网站开发作为固定资产怎么摊销3 阐述网站建设的步骤过程 9分
  • 网站建设准备工作总结网店代运营服务
  • 松原建设小学网站WordPress黑镜主题下载
  • 网站正在建设中提示页面深圳网站建设需要多少费用
  • 河南省建设厅注册中心网站如何将自己 做的网站发布网上
  • 建设厅电工证查询网站四川网站建设套餐
  • 产品网站策划书方案做视频网站推广挣钱吗
  • 潍坊视频类网站建设网站公司怎么建站
  • 电商网站开发周期看空间
  • 大兴模版网站建设哪家好个人电影网站建设
  • 内江市规划建设教育培训中心网站宁波市网站建设制作费用
  • 新乡网站建设专业熊掌网络做导购网站要多少钱
  • 商业网站 模板wordpress 标题入库
  • 成都网站系统开发大通证券手机版下载官方网站下载
  • 教育网站开发用例图三类人员 网站开发
  • 网站建设公司咨html编辑器安卓版下载
  • wordpress网站正在建设中网站开发 实名认证需要备案吗
  • 建站报价怎么做淘宝网站的网页
  • 淘宝客网站做seo有用吗公司申请网站建设
  • 数据统计网站淄博网站建设卓迅网络
  • 设计出色的网站网站规划详细设计怎么写
  • 织梦 网站地图 样式怎么做网站渗透
  • 男女之间做那个事情很污的网站天津企业网络建站
  • 重庆网站制作教程aso优化报价
  • 自己建的网站如何推广网站建设 交单流程
  • 网站建设教学后记微信公众号开发软件
  • 做的网站一定要收录么买域名