我收到以下错误:
未处理的类型' System.ArgumentOutOfRangeException'发生在mscorlib.dll
附加信息:长度不能小于零。
这是产生错误的代码:
'Parse coordinate string into coordinate values (degrees, minutes, seconds)
'Degrees
StartPtr = 0
StopPtr = DegreeString.IndexOf("°", StartPtr)
Degrees = Convert.ToDouble(DegreeString.Substring(StartPtr, StopPtr - StartPtr))
错误出现在Degrees行中,告诉我我的StopPtr返回-1。
答案 0 :(得分:1)
Substring(startIndex, length)
函数抱怨您传递了一个负数作为length
参数。由于明显的原因,这是无效的(对吧?)。
这意味着StopPtr - StartPtr
必须评估小于零的值。您知道StartPtr
正好为零,因为您只需将其设置为零。所以StopPtr
必须小于零。
这意味着DegreeString.IndexOf("°", StartPtr)
正在返回一个负数。
当找不到子字符串时,IndexOf
函数返回-1。
所以问题必定是DegreeString
不包含字符"°"
。