<分区>
.net System.String
类中Substring()
方法的定义是这样的
public string Substring(int startIndex)
根据方法定义,startIndex
是“此实例中子字符串的从零开始的起始字符位置”。如果我理解正确,这意味着它会给我一部分字符串,从给定的从零开始的索引开始。
现在,如果我有一个字符串 "ABC"
并采用具有不同索引的子字符串,我会得到以下结果。
var str = "ABC";
var chars = str.ToArray(); //returns 3 char 'A', 'B', 'C' as expected
var sub2 = str.Substring(2); //[1] returns "C" as expected
var sub3 = str.Substring(3); //[2] returns "" ...!!! Why no exception??
var sub4 = str.Substring(4); //[3] throws ArgumentOutOfRangeException as expected
为什么它不为 case [2] 抛出异常?
字符串有3个字符,所以索引是[0, 1, 2]
,甚至是ToArray()
, ToCharArray()
方法按预期返回 3 个字符!如果我尝试 Substring()
起始索引 3
,它不应该抛出异常吗?