2011-06-23 53 views

回答

10

這不是一個覆蓋。在這種情況下,編譯器使用空參數將Split()翻譯爲Split(char[])

拆分is defined作爲

public string[] Split(
    params char[] separator 
) 

params允許您指定一個可變數量的參數,包括沒有任何參數。如果沒有提供參數(如您的示例中所示),則separator陣列將爲空。

從上面鏈接的MSDN頁面:

如果分離參數爲空或不包含的字符,空白字符被認爲是分隔符。

這就是爲什麼你看到字符串拆分爲空白。這只是默認的行爲,而不是無證的功能,所以你可以自由使用它,而不用擔心不尋常的副作用。那麼,除非.NET的未來版本中的默認行爲發生變化,但這對我來說似乎不太可能,因爲空白是合理的默認值。

+2

打了我十五秒。詛咒! (+1):) –

+0

+1 Yep,'ToList()'是'System.Linq'的擴展方法。 – rsbarro

+0

輝煌而迅速!這就是我喜歡StackOverflow的原因。 –

3

remarks to String.Split

如果分離參數爲Nothing 或不包含的字符,空白 字符被假定爲 定界符。空格符是由Unicode標準定義的 ,如果它們被傳遞給012.Char.IsWhiteSpace方法,則 返回true。

我個人呼籲記錄行爲。 :)