我可以将其他参数传递给谓词函数吗?
我实际上在分拣过程中需要它。
public void Sort(
Comparison<T> comparison
)
在哪里我想以这种形式使用Comparison
谓词:
public delegate int Comparison<T>(
T x,
T y,
object extraParameter
)
这可能吗?
不,但你可以这样做:
public Comparison<T> MakeComparison<T>(object extraParameter)
{
return
delegate(T x, T y)
{
// do comparison with x, y and extraParameter
}
}
简单地捕获声明谓词时所需的变量。例如:
int i = 0, j = 10;
array.Sort(x => x > i && x < j ? 1 : -1);