在先前拆分的语句中使用string.Length属性时,除非语句被终止,否则它似乎返回一个http://msdn.microsoft.com/en-us/library/system.argumentoutofrangeexception%28v=vs.110%29.aspx。
考虑到这一点:
// Throw exception?
var X = "[Hello World. This is a test]";
X = X.Split('[')[1].Split(']')[0].Remove(0, X.Length - 1);而必须用分号终止语句,而不抛出任何异常。
// Works perfectly fine
var X = "[Hello World. This is a test]";
X = X.Split('[')[1].Split(']')[0];
X = X.Remove(0, X.Length - 1);为什么我必须终止语句的长度才能返回正确的字符串长度?
发布于 2013-12-16 22:03:40
分配给X的任务直到最后一步才会发生,因为在此之前没有将任何东西分配给X。因此,X.Length查看的是X的原始值,而不是中间值。
https://stackoverflow.com/questions/20621817
复制相似问题