美文网首页
C# 表达式树 (6)

C# 表达式树 (6)

作者: wwmin_ | 来源:发表于2021-01-28 22:37 被阅读0次

    系列文章: C# 表达式树及其应用 (Expression 类)

    本节继续讲解Expression相关的API, 力争把相关api 都使用简短demo说明一下

    • DebugInfo 创建一个具有指定跨度的 DebugInfoExpression。//TODO

    Decrement 创建一个 UnaryExpression,它表示按 1 递减表达式值。

        //Decrement  创建一个 UnaryExpression,它表示按 1 递减表达式值。
        void DecrementSample()
        {
            double num = 5.5;
            Expression decrementExpr = Expression.Decrement(Expression.Constant(num));
            decrementExpr.ToString().Dump();//Decrement(5.5)
            Expression.Lambda<Func<double>>(decrementExpr).Compile()().Dump();//4.5
        }
        DecrementSample();
    
    • Default(Type) 创建一个 DefaultExpression,Type 属性设置为指定类型。
        //Default(Type)  创建一个 DefaultExpression,Type 属性设置为指定类型。
        void DefaultSample()
        {
            Expression defaultExpr = Expression.Default(typeof(byte));
            defaultExpr.ToString().Dump();//default(Byte)
            Expression.Lambda<Func<byte>>(defaultExpr).Compile()().Dump();//0
        }
        DefaultSample();
    
    • Divide 创建一个表示算术除法运算的 BinaryExpression。
        //Divide  创建一个表示算术除法运算的 BinaryExpression。
        void DivideSample()
        {
            Expression divideExpr = Expression.Divide(Expression.Constant(10.0), Expression.Constant(4.0));
            divideExpr.ToString().Dump();//(10 / 4)
            Expression.Lambda<Func<double>>(divideExpr).Compile()().Dump();//2.5
        }
        DivideSample();
    
        //DivideAssign (类似与Divide) 创建一个表示不进行溢出检查的除法赋值运算的 BinaryExpression。
    
        //Dynamic  创建一个表示动态操作的 DynamicExpression。 //TODO
    

    本文作者:wwmin
    微信公众号: DotNet技术说
    本文链接:https://www.jianshu.com/p/3723d3ab8473
    关于博主:评论和私信会在第一时间回复。或者[直接私信]我。
    版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
    声援博主:如果您觉得文章对您有帮助,关注点赞, 您的鼓励是博主的最大动力!

    相关文章

      网友评论

          本文标题:C# 表达式树 (6)

          本文链接:https://www.haomeiwen.com/subject/nihftltx.html