2016-09-13 26 views
0

我有上了解一些C#Func鍵<一些麻煩...>運營商,例如,我們有以下片段:Understadning C#委託Func鍵<...>運營商

Func<int, bool> a = n => n <= 1; 
Func<int, int> b = n => 10; 
Func<int, int> c = n => { return n; }; 
Func<int, int> d = n => a(n)? b(n): n*c(n-1); 
Console.WriteLine("{0} {1} {2}", d(1), d(2), d(3)); 

什麼是?:的meaing代表 ?是a(n)? b(n)代表一個條件? (例如,如果a(n)爲假並且b(n)具有值,則計算c(n)並將其作爲d返回。)我不確定是否正確理解了這一點,或者我的假設是完全錯誤的。

+1

這三元運算符,在那裏沒什麼特別的。 – jdphenix

+0

@ jdphenix謝謝,不知道他們被稱爲三元操作符。 – Phantom

+1

這一切都很好,很難谷歌'?:':D – jdphenix

回答

1

爲了使它更清楚,你可以解釋

n => a(n)? b(n): n*c(n-1); 

爲(假定你的問題提供的定義):

if (n<=1) 
    return 10; //b(n) 
else 
    return n*n-1; //n*c(n-1)=n*n 

注意returns在那裏,因爲d=...

+0

三元運算符是不一樣的,如果 - 其他聲明。 –

+0

@DannyChen確定它不是。誰說的是? – mok