0

这两行代码有什么区别吗?

1)someString.Split(new[] { ';' });

2)someString.Split(';');

我在我正在处理的代码中看到了第一个,我想知道我是否可以安全地将其更改为第二个,或者他们为什么选择第一种方式。

谢谢。

4

2 回答 2

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

方法参数是params char[]. params关键字意味着您可以显式提供一个数组,或者让编译器为您创建一个。在您的第一种形式中,您明确地提供了数组。当然,如果您想使用方法的其他重载来指定其他行为,您将需要使用这种形式。否则,您可以简单地使用您的第二种形式,并在行中列出分隔符并以逗号分隔以方便使用。

为什么以前的编码员选择第一种形式而不是第二种形式,我不能说。我不知道以前的框架版本中需要显式数组的方法形式。但是,如果您愿意,您应该可以安全地更改表单,并且您一定会进行测试以验证预期的行为。

于 2012-10-16T05:30:39.570 回答
2

在第一个选项中,如果要拆分多个字符,则可以在字符数组中指定。如果只有一个字符用于拆分,则使用第二个选项。

考虑以下示例:

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(';');
于 2012-10-16T05:27:32.523 回答