public void Require(Expression<Func<Product1, string>> pro, string errorMessage) { //string proValue=pro得到值 if (string.IsNullOrEmpty(proValue)) { throw new Exception(errorMessage); } }
如上代码,pro表达式树如何到得返回的值?还请大家指教,谢谢!
咋就没有人回答呢?我自己解决了,其余我是陷入了对表达式树理解的误区了,认为表达式树包含委托就可以执行,参数在传进去的时候就有了,其实不是,代码修改如下:
public void Require(Expression<Func<Product1, string>> pro, string errorMessage) { Func<Product1, string> func=pro.Compile(); string proValue=func(this); //this为当前类对象,之前就是纠结参数传入的问题!! if (string.IsNullOrEmpty(proValue)) { throw new Exception(errorMessage); } }