Local variable and expression trees

后端 未结 3 686
庸人自扰
庸人自扰 2020-11-30 06:47

I am learning expression trees in C#.

I am stuck now for a while:

string filterString = \"ruby\";
Expression> expressi         


        
3条回答
  •  渐次进展
    2020-11-30 07:24

    This code wraps the expression in a closure Block that treats the local variable as a constant.

     string filterString = "ruby";
    
     var filterStringParam = Expression.Parameter(typeof(string), "filterString");
     var stringParam = Expression.Parameter(typeof(string), "x");
    
     var block = Expression.Block(
     // Add a local variable.
     new[] { filterStringParam },
     // Assign a constant to the local variable: filterStringParam = filterString
     Expression.Assign(filterStringParam, Expression.Constant(filterString, typeof(string))),
     // Compare the parameter to the local variable
     Expression.Equal(stringParam, filterStringParam));
    
     var x = Expression.Lambda>(block, stringParam).Compile();
    

提交回复
热议问题