我刚刚发现这个代码不仅编译,而且似乎在任何空格上分割字符串.
List<string> TableNames = Tables.Split().ToList();
然而,它没有在intellisense中显示,它不在MSDN page上.
这只是一个没有文档的覆盖吗?因此,使用是否危险?
解决方法
这不是一个覆盖.在这种情况下,编译器使用空参数将Split()转换为Split(char []).
拆分is defined为
public string[] Split( params char[] separator )
params允许您指定可变数量的参数,包括根本没有参数.如果未提供任何参数(如示例所示),则分隔符数组将为空.
If the separator parameter is null or contains no characters,white-space characters are assumed to be the delimiters.
这就是为什么你看到字符串在空格上分割的原因.这只是默认行为而不是未记录的功能,因此您可以自由使用它而不必担心会出现异常的副作用.好吧,除非默认行为在.NET的未来版本中发生变化,但这对我来说似乎不太可能,因为空格是合理的默认值.