if(pFeature!=null)
{
IPoint pnt = pFeature.Shape as IPoint;
pntArray.Add(pnt);
}
調試是pntArray.Add(pnt)顯示 嘗試讀取或寫入受保護的內存。這通常指示其他內存已損壞。,網上的資料說是COM對象在循環中沒有來得及釋放造成的。
因為是在循環中,以為是pFeature沒有釋放造成的,所以就釋放了一下,結果還是這個問題。
后來仔細找,發現pFeature是Polygon類型的,當初想當然的以為可以將Polygon轉化為Point類型。后來斷點時候,發現pnt一只為null。
所以,上述錯誤的原因就是把一個空接口指針添加到PointArray集合中造成的。
通過一定的方法,將Polygon的中心坐標賦值到pnt中,即可解決上述問題。