chmenf087 发表于 2011-4-18 23:40:40

getsplitcurves返回集合索引超界?

用getsplitcurves从曲线上两点打断,返回的集合明明就有3条曲线为什么我用curve.getsplitcurves()(1)会索引超界呢?
程序的片段
            Dim splitPnt As New Point3dCollection
            splitPnt.Add(curFroPnt)
            splitPnt.Add(curToPnt)
            Dim splitCurCol As DBObjectCollection
            splitCurCol = appendEnt.GetSplitCurves(splitPnt)
            Dim splitCurNum As Integer = splitCurCol.Count
            appendEnt = splitCurCol(splitCurCol.Count - 2)
调试的时候追踪变量已经明确显示splitCurCol.count=3,
我了个晕哦!

sieben 发表于 2011-4-19 20:41:39

本帖最后由 sieben 于 2011-4-19 20:42 编辑

AutoCAD 哪个版本?
我以前在AutoCAD 2006碰到这种情况,DBObjectCollection dbClt 里面有多个成员,dbClt是由类似GetSplitCurves这类Autodesk提供的函数返回的,这时若直接访问第一成员以外的成员会出异常(即序号大于0),但若对dbClt 遍历一次后则正常了,使用foreach遍历肯定,使用for从0开始遍历好象也行,不记得了.直接访问0序号成员是否出异常也忘了,印象是不会.

chmenf087 发表于 2011-4-19 21:27:57

回复 sieben 的帖子

症状正如兄台所述,不过我的是08版的,还是有这种情况,3Q!

cdinten 发表于 2011-4-19 22:24:29

我感觉像是只返回了个数,而对于其中具体的对象都没有初始化,遍历一次之后才初始化的。这个和数据集中的GetCount很像
页: [1]
查看完整版本: getsplitcurves返回集合索引超界?