加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 这是Split方法的未记录的覆盖吗?

发布时间:2020-12-15 06:26:57 所属栏目:百科 来源:网络整理
导读:我刚刚发现这个代码不仅编译,而且似乎在任何空格上分割字符串. Liststring TableNames = Tables.Split().ToList(); 然而,它没有在intellisense中显示,它不在MSDN page上. 这只是一个没有文档的覆盖吗?因此,使用是否危险? 解决方法 这不是一个覆盖.在这种情
我刚刚发现这个代码不仅编译,而且似乎在任何空格上分割字符串.
List<string> TableNames = Tables.Split().ToList();

然而,它没有在intellisense中显示,它不在MSDN page上.

这只是一个没有文档的覆盖吗?因此,使用是否危险?

解决方法

这不是一个覆盖.在这种情况下,编译器使用空参数将Split()转换为Split(char []).

拆分is defined为

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

params允许您指定可变数量的参数,包括根本没有参数.如果未提供任何参数(如示例所示),则分隔符数组将为空.

从上面链接的MSDN页面:

If the separator parameter is null or contains no characters,white-space characters are assumed to be the delimiters.

这就是为什么你看到字符串在空格上分割的原因.这只是默认行为而不是未记录的功能,因此您可以自由使用它而不必担心会出现异常的副作用.好吧,除非默认行为在.NET的未来版本中发生变化,但这对我来说似乎不太可能,因为空格是合理的默认值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读