我刚刚发现这个代码不仅编译,而且似乎在任何空格上分割字符串.
List<string> TableNames = Tables.Split().ToList();
Run Code Online (Sandbox Code Playgroud)
但它没有在intellisense中显示,它不在MSDN页面上.
这只是一个没有文档的覆盖吗?因此,使用是否危险?
Ada*_*ear 10
这不是一个覆盖.在这种情况下,编译器会转换Split()为Split(char[])空参数.
拆分定义为
public string[] Split(
params char[] separator
)
Run Code Online (Sandbox Code Playgroud)
params允许您指定可变数量的参数,包括根本不包含参数.如果没有提供参数(如您的示例中所示),则separator数组将为空.
从上面链接的MSDN页面:
如果separator参数为null或不包含任何字符,则假定空格字符为分隔符.
这就是为什么你看到字符串在空格上分割的原因.这只是默认行为而不是未记录的功能,因此您可以自由使用它而不必担心会出现异常的副作用.好吧,除非默认行为在.NET的未来版本中发生变化,但这对我来说似乎不太可能,因为空格是合理的默认值.
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |