C# 表达式树 (6)

2021-01-28  本文已影响0人  wwmin_

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

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

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 属性设置为指定类型。
    void DefaultSample()
    {
        Expression defaultExpr = Expression.Default(typeof(byte));
        defaultExpr.ToString().Dump();//default(Byte)
        Expression.Lambda<Func<byte>>(defaultExpr).Compile()().Dump();//0
    }
    DefaultSample();
    //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 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,关注点赞, 您的鼓励是博主的最大动力!

上一篇下一篇

猜你喜欢

热点阅读