长度不能小于零

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不包含字符"°".