是否可以在C#表达式中使用占位符?我有一个表达式,用于过滤数据网格中的记录,如下所示:
view.Filter = item =>
{
OrdsRlsd vitem = item as OrdsRlsd;
if (vitem.OrderNo >= Convert.ToInt32(TxtCond1.Text) && vitem.OrderNo <= Convert.ToInt32(TxtCond2.Text))
{
return true;
}
return false;
};
在此表达式中,比较运算符以及TxtCond1和TxtCond2值是动态的。我们可以为此使用占位符吗?
最佳答案
是的,您可以将其作为Func<string>
参数传递。所以说你的函数定义是这样的
public void Filter(Func<string> string1, Func<string> string2)
{
var result = item =>
{
OrdsRlsd vitem = item as OrdsRlsd;
if (vitem.OrderNo >= Convert.ToInt32(string1.Invoke()) && vitem.OrderNo <= Convert.ToInt32(string2.Invoke()))
{
return true;
}
return false;
};
}