Net Core教程

【C#表达式树 五】工厂模式创建表达式树节点

本文主要是介绍【C#表达式树 五】工厂模式创建表达式树节点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

Not 创建一个表示按位求补运算的 UnaryExpression。

    //Not   创建一个表示按位求补运算的 UnaryExpression。
    void NotSample()
    {
        Expression notExpr = Expression.Not(Expression.Constant(true));
        notExpr.ToString().Dump("NotExpr");//Not(true)
        Expression.Lambda<Func<bool>>(notExpr).Compile()().Dump("Not");//false
    }
    NotSample();

 

NotEqual 创建一个表示不相等比较的 BinaryExpression。

    //NotEqual   创建一个表示不相等比较的 BinaryExpression。
    void NotEqualSample()
    {
        Expression notEqualExpr = Expression.NotEqual(Expression.Constant(1), Expression.Constant(2));
        notEqualExpr.ToString().Dump("NotEqualExpr");//(1!=2)
        Expression.Lambda<Func<bool>>(notEqualExpr).Compile()().Dump("NotEqual");//true
    }
    NotEqualSample();

    //OnesComplement    返回表示一的补数的表达式。//TODO

创建数组

NewArrayInit 创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression

    //NewArrayInit    创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression。
    void NewArrayInitSample()
    {
        List<Expression> trees = new List<Expression>()     {
            Expression.Constant("oak"),
            Expression.Constant("fir"),
            Expression.Constant("spruce"),
            Expression.Constant("alder")
          };

        NewArrayExpression newArrayExpression = Expression.NewArrayInit(typeof(string), trees);
        newArrayExpression.ToString().Dump("NewArrayInit");
    }
    NewArrayInitSample();



NewArrayBounds 创建一个表示创建具有指定秩的数组的 NewArrayExpression

    //NewArrayBounds   创建一个表示创建具有指定秩的数组的 NewArrayExpression。
    void NewArrayBoundsSample()
    {
        NewArrayExpression newArrayExpression = Expression.NewArrayBounds(
                typeof(string),
                Expression.Constant(3),
                Expression.Constant(2)
            );
        newArrayExpression.ToString().Dump("NewArrayBounds");//new System.String[,](3, 2)
    }
    NewArrayBoundsSample();

 

这篇关于【C#表达式树 五】工厂模式创建表达式树节点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!