2009-04-20 35 views
36

我很想說謊,並說英語是我的第二語言,但事實是,我不知道'凝聚'是什麼意思。我知道C#中的??'會',但名稱對我來說沒有意義。??空合併運算符 - >合併意味着什麼?

我擡頭看了一眼,我明白它是「連接」的同義詞。 '空加入運營商'仍然沒有意義。

有人能夠啓發我嗎?

+1

從SQL的角度來看它! – 2009-04-20 21:38:00

回答

32

我很想說謊,並說英語是我的第二語言......但事實是,我不知道'凝聚'是什麼意思。我知道什麼? '在C#中做',但名字對我來說沒有意義。

我擡頭看了一眼,我明白它是「連接」的同義詞。

我想說一個更準確的「合併」的描述將是「從不同的元素中形成一件事」。 ??運算符的「合併」發生是因爲單個值總是從兩個值中的一個值中解析出來。第一個非空值是結果。

5

含義取第一個非空值。

+1

(或最後一個空值。) – 2010-10-19 18:15:58

17

合併是當你有多個項目,然後你最終得到一個 - 無論是通過加入項目在一起,或從組中選擇一個項目。在的情況下?運算符,您正在選擇該對值中的第一個非空值。

8

下面是​​3210的一些其他定義,可能有助於理解。 從Answers,它表明它意味着「一起成長,融合」或「聚在一起形成一個整體」。換句話說,採取一系列的項目,並使其中的一個。所以考慮到null在這個討論中的意思是「空的」,合併null與非空給你非空。

2

http://www.merriam-webster.com/dictionary/coalesce

我認爲最好的定義是「團結起來,爲一個共同的終點」。所以基本上把它們都拉到一起,以獲得最好的。在編程方面,它更多的是獲得第一個最好的項目。

1

你可以從這個YouTube視頻http://www.youtube.com/watch?v=YJGGmTNHPeo

如果你看到合併它說:「鞏固起來」的英文含義開始。合併運算符返回鏈中的第一個非空值。例如,下面是一個鏈接四個字符串的簡單合併代碼。因此,如果「str1」爲空,它將嘗試「str2」,如果「str2」爲空,它將嘗試「str3」,依此類推,直到找到具有非空值的字符串。

string final =str1 ?? str2 ?? str3 ??