这是对Split方法的未记录的重写吗
本文关键字:记录 重写 方法 Split | 更新日期: 2023-09-27 18:00:11
我刚刚发现,这段代码不仅可以编译,而且似乎可以在任何空白处拆分字符串。
List<string> TableNames = Tables.Split().ToList();
然而,它并没有显示在intelligense中,也没有出现在MSDN页面上。
这只是一个未记录的覆盖吗?因此使用它有危险吗?
它不是覆盖。在这种情况下,编译器将Split()
转换为具有空参数的Split(char[])
。
拆分定义为
public string[] Split(
params char[] separator
)
params
允许您指定可变数量的参数,其中不包括任何参数。如果没有提供任何参数(如您的示例所示),separator
数组将为空。
从上面链接的MSDN页面:
如果分隔符参数为null或不包含任何字符,则假定空格字符为分隔符。
这就是为什么您看到字符串在空白处被拆分的原因。这只是默认行为,而不是未记录的功能,所以您可以自由使用它,而不用担心异常的副作用。除非默认行为在的未来版本中发生变化。NET,但这对我来说似乎不太可能,因为空白是一个合理的默认值。
从备注到字符串。拆分:
如果分隔符参数为Nothing或不包含字符,空白字符被假定为分隔符。空白字符是由Unicode标准定义,以及如果将它们传递给烧焦IsWhiteSpace方法。
就我个人而言,我称之为记录在案的行为。:)