这两行代码有什么区别吗?
1)someString.Split(new[] { ';' });
2)someString.Split(';');
我在我正在处理的代码中看到了第一个,我想知道我是否可以安全地将其更改为第二个,或者他们为什么选择第一种方式。
谢谢。
这两行代码有什么区别吗?
1)someString.Split(new[] { ';' });
2)someString.Split(';');
我在我正在处理的代码中看到了第一个,我想知道我是否可以安全地将其更改为第二个,或者他们为什么选择第一种方式。
谢谢。
public string[] Split(params char[] separator)
方法参数是params char[]
. params
关键字意味着您可以显式提供一个数组,或者让编译器为您创建一个。在您的第一种形式中,您明确地提供了数组。当然,如果您想使用方法的其他重载来指定其他行为,您将需要使用这种形式。否则,您可以简单地使用您的第二种形式,并在行中列出分隔符并以逗号分隔以方便使用。
为什么以前的编码员选择第一种形式而不是第二种形式,我不能说。我不知道以前的框架版本中需要显式数组的方法形式。但是,如果您愿意,您应该可以安全地更改表单,并且您一定会进行测试以验证预期的行为。
在第一个选项中,如果要拆分多个字符,则可以在字符数组中指定。如果只有一个字符用于拆分,则使用第二个选项。
考虑以下示例:
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(';');