长度不能小于零
length can't be less than zero
我收到以下错误:
An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
Additional information: Length cannot be less than zero.
这是产生错误的代码:
'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。
Substring(startIndex, length)
函数抱怨您将负数作为 length
参数传递。由于显而易见的原因,哪个无效(对吗?)。
这意味着 StopPtr - StartPtr
的计算结果必须小于零。你知道 StartPtr
正好是零,因为你只是将它设置为零。所以 StopPtr
必须小于零。
这意味着 DegreeString.IndexOf("°", StartPtr)
返回负数。
IndexOf
函数 returns -1 没有找到子串。
所以问题一定是DegreeString
不包含字符"°"
.
我收到以下错误:
An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
Additional information: Length cannot be less than zero.
这是产生错误的代码:
'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。
Substring(startIndex, length)
函数抱怨您将负数作为 length
参数传递。由于显而易见的原因,哪个无效(对吗?)。
这意味着 StopPtr - StartPtr
的计算结果必须小于零。你知道 StartPtr
正好是零,因为你只是将它设置为零。所以 StopPtr
必须小于零。
这意味着 DegreeString.IndexOf("°", StartPtr)
返回负数。
IndexOf
函数 returns -1 没有找到子串。
所以问题一定是DegreeString
不包含字符"°"
.