这是对Split方法的未记录的重写吗

本文关键字:记录 重写 方法 Split | 更新日期: 2023-09-27 18:00:11

我刚刚发现,这段代码不仅可以编译,而且似乎可以在任何空白处拆分字符串。

List<string> TableNames = Tables.Split().ToList();

然而,它并没有显示在intelligense中,也没有出现在MSDN页面上。

这只是一个未记录的覆盖吗?因此使用它有危险吗?

这是对Split方法的未记录的重写吗

它不是覆盖。在这种情况下,编译器将Split()转换为具有空参数的Split(char[])

拆分定义为

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

params允许您指定可变数量的参数,其中不包括任何参数。如果没有提供任何参数(如您的示例所示),separator数组将为空。

从上面链接的MSDN页面:

如果分隔符参数为null或不包含任何字符,则假定空格字符为分隔符。

这就是为什么您看到字符串在空白处被拆分的原因。这只是默认行为,而不是未记录的功能,所以您可以自由使用它,而不用担心异常的副作用。除非默认行为在的未来版本中发生变化。NET,但这对我来说似乎不太可能,因为空白是一个合理的默认值。

从备注到字符串。拆分:

如果分隔符参数为Nothing或不包含字符,空白字符被假定为分隔符。空白字符是由Unicode标准定义,以及如果将它们传递给烧焦IsWhiteSpace方法。

就我个人而言,我称之为记录在案的行为。:)