我只是想试着看看我是否可以用一些新的appounch。
我有一个txt文件,其中包含一系列条件比较值,即:
Parameter1!=Value2
然后我将读取它们并将它们放入我的“Condition”对象中,然后我将能够运行条件结果以查看放入Parameter1并查看是否不等于Value2。
我只是想知道C#中是否有一个存储conditon参数的类型? 所以在对象中可能定义为:
operator InputOperator = "!=";
然后我可以直接在代码中使用它:
if (Parameter1 ConditionObj.InputOperator ConditionObj.Value2)
{
//do stuff
}
我知道还有很多其他的appounches,我只是想知道C#中是否存在类似的东西。
提前致谢。
答案 0 :(得分:4)
你最容易做到的就是代表:
// Equivalent to Func<T, T, bool>, but the name probably helps explain
// the expected semantics better.
delegate bool ConditionOperator<T>(T left, T right)
然后你可以使用:
ConditionOperator<int> notEquals = (x, y) => x != y;
例如,。然后你可以照常传递代表,并在你想要的时候调用它们。
答案 1 :(得分:1)
您可以存储string => Func<object, object, bool>
个委托的映射,并根据读入的内容执行相应的委托。
答案 2 :(得分:0)
不,你不能这样做。我想说最好的办法是在ConditionObj中使用一种方法进行比较。