2010-08-20 115 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); 
相關問題