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:42 编辑
AutoCAD 哪个版本?
我以前在AutoCAD 2006碰到这种情况,DBObjectCollection dbClt 里面有多个成员,dbClt是由类似GetSplitCurves这类Autodesk提供的函数返回的,这时若直接访问第一成员以外的成员会出异常(即序号大于0),但若对dbClt 遍历一次后则正常了,使用foreach遍历肯定,使用for从0开始遍历好象也行,不记得了.直接访问0序号成员是否出异常也忘了,印象是不会. 回复 sieben 的帖子
症状正如兄台所述,不过我的是08版的,还是有这种情况,3Q! 我感觉像是只返回了个数,而对于其中具体的对象都没有初始化,遍历一次之后才初始化的。这个和数据集中的GetCount很像
页:
[1]