這兩行代碼有什麼區別?這些空數組String.Split方法調用之間有什麼區別?
1)someString.Split(new[] { ';' });
2)someString.Split(';');
我看到在我工作的,並想知道如果我可以放心地將其更改爲第二或他們爲什麼選擇做它的代碼的第一個第一種方式。
謝謝。
這兩行代碼有什麼區別?這些空數組String.Split方法調用之間有什麼區別?
1)someString.Split(new[] { ';' });
2)someString.Split(';');
我看到在我工作的,並想知道如果我可以放心地將其更改爲第二或他們爲什麼選擇做它的代碼的第一個第一種方式。
謝謝。
public string[] Split(params char[] separator)
的方法參數是params char[]
。 params
關鍵字表示您可以顯式提供一個數組,或讓編譯器爲您創建一個。在你的第一種形式中,你明確提供了數組。當然,如果您想使用該方法的其他overloads來指定其他行爲,則需要使用此表單。否則,您可以簡單地使用第二種形式,並將分隔符按行和逗號分隔以便於使用。
爲什麼先前的編碼器在第二種情況下選擇了第一種形式,我不能說。我不知道以前的框架版本中需要顯式數組的方法表單。但是,如果您願意,您應該可以安全地更改表單,並且您將確保進行測試以驗證預期的行爲。
在第一個選項,如果你想分割在多個字符,那麼你可以指定你的字符數組。如果將只有一個字符進行分割,則使用第二個選項。
考慮下面的例子:
string someString = "Somestring;abc.def.abc";
//following will return 4 elements array, after splitting on ';' and '.'
string[] splitedArray = someString.Split(new[] { ';','.' });
//following will return 2 elements in array after splitting on a single character
string[] splitedOnSingleCharacter = someString.Split(';');
+1對於很好的解釋 –
+1強調事實,這兩條線使用一個和相同的拆分過載。 – horgh