理解为何是用iPolyGon赋值给polygon,而不是ipPointCol。
1:ESRI.ArcGIS.Geometry.IPointCollection ipPointCol = (IPointCollection)ipPolyGon;
2:ipPointCol.AddPoint(p, ref missing, ref missing);
3:IPolygon polygon = ipPolyGon;
从平常的逻辑中我们可以理解 1 中ipPolyGon赋值给了ipPointCol,2 中为ipPointCol添加了新的元素,3 中将ipPolyGon赋值给了polygon。
感觉哪儿不对,ipPolyGon赋值给ipPointCol后就没被赋值,最后却赋值给了polygon,那么polygon应该还是空的才对。
这种理解是错误的。
首先,1 中的代码可以理解为PolyGon 实现ipPointCol。
第二,数据还是存储在PloyGon中。
第三,最后给面赋值对象时,当然就是用ipPolyGon了。
这个跟类的类型和关系有关。