2013-07-25 39 views
0
public delegate TResult Func<TArg0, TResult>(TArg0 arg0) 

Func<int, bool> myFunc = x => x == 5; 
bool result = myFunc(4); // returns false of course 

我不明白這個例子。
這段代碼是什麼意思?帶標準查詢運算符的lambda表達式

public delegate TResult Func<TArg0, TResult>(TArg0 arg0) 

回答

0

這是一個通用的delegate定義,它與任何具有單輸入參數的非void方法相匹配。你的lambda函數(即匿名方法)匹配這個簽名。

BTW,你不需要創建委託 - 它已經存在於.NET框架: Func<T, TResult>

+1

質量downvote的原因? –

+2

+1,我認爲這是一個很好的答案。我不明白你爲什麼被低估。 –

0

你讀過任何教程有關委託那麼遠?

該行意味着:返回TResult並採用TArg0參數的函數的委託類型。由於這是你可以指定不同的方法泛型委託,下面都將是可能的:

int Foo (int i); 
double Foo (string str); 
... 

TArg0 arg0是一個函數參數(參數名:爲arg0,參數類型:通用,目前未知)。 TArg0因此是推測當你實際使用它,例如double Foo(string str)將設置爲TArg0 = string

+0

(TArg0 arg0)< - 這段代碼的含義是什麼? –

+1

你有沒有降低我們的答案?我要調整TArg0 arg0的答案。 –

+0

@JacekWojcik這是一個類型爲'TArg0'的論據。 – Default