Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 长度可';不能小于零_Vb.net_Outofrangeexception - Fatal编程技术网

Vb.net 长度可';不能小于零

Vb.net 长度可';不能小于零,vb.net,outofrangeexception,Vb.net,Outofrangeexception,我收到以下错误: mscorlib.dll中发生类型为“System.ArgumentOutOfRangeException”的未处理异常 其他信息:长度不能小于零 这是产生错误的代码: 'Parse coordinate string into coordinate values (degrees, minutes, seconds) 'Degrees StartPtr = 0 StopPtr = DegreeString.IndexOf("°", StartPtr) De

我收到以下错误:

mscorlib.dll中发生类型为“System.ArgumentOutOfRangeException”的未处理异常

其他信息:长度不能小于零

这是产生错误的代码:

'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行中,告诉我我的stopttr返回-1。

函数抱怨您传递了一个负数作为
长度
参数。这是无效的,原因很明显(对吧?)

这意味着
stopttr-StartPtr
的计算值必须小于零。您知道
StartPtr
正好为零,因为您刚刚将其设置为零。因此
stoptr
必须小于零

这意味着
递减。IndexOf(“°”,StartPtr)
返回一个负数

当未找到子字符串时,函数返回-1


因此,问题一定是
DegreeString
不包含字符
“°”

请通读,然后查看此处以了解如何创建一个。你刚刚用一个含糊不清的句子扔掉了一大堆代码,我真的搞不懂这个句子。我回去调整了一些问题,把一些代码去掉了。我希望我留下的足够多让人们理解这个程序在做什么。我理解你在返回索引-1时所说的话。我试图将:StartPtr=0 stopttr=Hubs(Index1Integer)。Lat.IndexOf(“°”,StartPtr)degrees=Convert.ToDouble(Hubs(Index1Integer)。Lat.Substring(StartPtr,stopttr-StartPtr))更改为上面的函数,DegreeString是我的输入参数。我不知道现在它怎么会超出范围。@Marqueburges-这是因为
DegreeString
不包含
“°”
。这是唯一的原因。为了了解发生了什么,您需要在代码中设置一些断点并逐步执行,观察变量值在代码执行时的变化。对不起。我看了一遍,明白你们在说什么。我已经看过去了,谢谢你的帮助