我有两段代码A和B,它们彼此完全相同,除了A具有以下内容
if(x == y)B有这个
if(x != y)其中x和y是整数。
我想减少代码的重复,所以想把这段代码放在一个单独的方法中。问题是如何将==和!=运算符传递到这样的方法中并执行它?
发布于 2013-05-17 20:52:03
您可以传递一个Func<int, int, bool>
private void MyMethod(Func<int, int, bool> checker)
{
if(checker(3, 4))
{
// Do Something.
}
}发布于 2013-05-17 20:50:18
就像把它和布尔异或?
bool negate = true;
...
if ((x == y) ^ negate)
...在整数方程和不等式的情况下,它可以很容易地解决你的问题。
发布于 2013-05-17 20:53:37
可以这样做:
void TheMethod(Func<int, int, bool> criterion)
{
...
if (criterion(x, y))
...
}然后使用TheMethod((x, y) => x == y);或TheMethod((x, y) => x != y);调用。
https://stackoverflow.com/questions/16609472
复制相似问题