我不想在应用程序中复制大量代码,因此我想执行以下操作。
// PSEUDO CODE
if (next == true) {operator = "<=";}
else {operator = ">=";}
// Should use "row >= nowRow" or "row <= nowRow" to avoid having repeated code
if (row.Count operator nowRow) { ... }
有什么建议吗?
答案 0 :(得分:1)
您可以使用lambda表达式执行类似的操作
var compare = next ? (Func<int,int,bool>)((l, r) => l <= r) : ((l, r) => l >= r);
if(compare(rowDat.Count, nowRow))
{
}
答案 1 :(得分:0)
您可以将函数分配给委托类型的变量。
对于您来说,Func<T1,T2,TResult> Delegate
是合适的。
Func<int, int, bool> func = (x,y) => x <= y;
Console.WriteLine(func(1,2));