2010-08-20 131 views
4

我可以将其他参数传递给谓词函数吗?如何将其他参数传递给谓词函数?

实际上我在排序过程中需要它。

public void Sort(
    Comparison<T> comparison 
) 

,我想用比较谓语形式如下:

public delegate int Comparison<T>(
    T x, 
    T y, 
     object extraParameter 

) 

这可能吗?

感谢,

回答

4

没有,但你可以这样做:

public Comparison<T> MakeComparison<T>(object extraParameter) 
{ 
    return 
     delegate(T x, T y) 
     { 
      // do comparison with x, y and extraParameter 
     } 
} 
+0

谢谢Tim!这对我来说是一个非常有用的信息。 – pencilCake 2010-08-20 12:56:36

3

简单捕捉在声明谓词你需要的变量。例如:

int i = 0, j = 10; 

array.Sort(x => x > i && x < j ? 1 : -1); 
相关问题