存储操作员并直接使用?

时间:2011-03-10 17:35:05

标签: c#

我只是想试着看看我是否可以用一些新的appounch。

我有一个txt文件,其中包含一系列条件比较值,即:

Parameter1!=Value2

然后我将读取它们并将它们放入我的“Condition”对象中,然后我将能够运行条件结果以查看放入Parameter1并查看是否不等于Value2。

我只是想知道C#中是否有一个存储conditon参数的类型? 所以在对象中可能定义为:

operator InputOperator = "!=";

然后我可以直接在代码中使用它:

if (Parameter1 ConditionObj.InputOperator ConditionObj.Value2)
{
 //do stuff
}

我知道还有很多其他的appounches,我只是想知道C#中是否存在类似的东西。

提前致谢。

3 个答案:

答案 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中使用一种方法进行比较。