Sta*_*ful 6 c# expression-trees
在完整条件表达式上使用ExpressionSerialization对表达式树进行反序列化,即三元运算符给出错误.如果我使用三元运算符,则会导致FullConditionExpression(系统不支持异常)
使用以下链接中的代码:
http://archive.msdn.microsoft.com/exprserialization
上述链接是否有最新版本?
事后试过这个
public Expression<Func<object, string>> LabelCriteria { get; set; }
LabelCriteria = x =>
{
if (true)
return "Cash";
else
return " ";
}
Run Code Online (Sandbox Code Playgroud)
表达式不支持if - else阻止.它给出了错误"因为带有语句体的lambda表达式无法转换为表达式树.还有其他方法可以做到这一点.
您必须使用条件运算符:
LabelCriteria = x => true ? "Cash" : " ";
Run Code Online (Sandbox Code Playgroud)
然而,由于条件是常量表达式 ( true) ,编译器可能会因为常量折叠而修改表达式。尝试在那里使用一个变量,看看会发生什么。
你可以使用像这样的方法:
string myFunction(Object obj){
//here your if-else...
}
Run Code Online (Sandbox Code Playgroud)
LabelCriteria = x => myFunction(x);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1778 次 |
| 最近记录: |