我想在VB.Net中爲arcmap創建一個自定義工具。但即時通訊有問題與FeatureCursor傳遞給ISelectionSet的Search()方法。傳遞給ISelectionSet的Search方法的FeatureCursor實例拋出NullReferenceException
這裏是我的代碼的一部分。
Dim pSelSet As ISelectionSet = provFSel.SelectionSet
Dim provCursor As IFeatureCursor
pSelSet.Search(spatialFilter, True, provCursor)
Dim provFeature As IFeature = provCursor.NextFeature
藍色波浪線provCursor下出現內搜索(),上面寫着「變量provCursor「按引用傳遞已賦值前空引用在運行時可能會導致異常。「 我用盡
Dim provCursor As IFeatureCursor = New FeatureCursor
但在新FeatureCursor上標記說:「‘ESRI.ArcGIS.Geodatabase.FeatureCursorClass.Friend子新()’是不是在這種情況下訪問,因爲它是‘朋友’。」 我也試過
Dim provCursor As IFeatureCursor = Nothing
,但沒有成功。
在我所有的調試嘗試,ArcMap中墜毀與此錯誤:發生在Microsoft.VisualBasic.dll中
有人可以幫我找出什麼是錯我的代碼類型「System.NullReferenceException」的第一個機會異常?我真的很感激任何幫助。
-spearman
林如果在上述代碼或在現有的代碼發生錯誤實際上不肯定。因此林張貼整個子過程的內容:
Dim pPoint As IPoint = pMxDoc.CurrentLocation
Dim provFSel As IFeatureSelection = provinceLayer
Dim pGeom As IGeometry = pPoint.Shape
Dim spatialFilter As ISpatialFilter = New SpatialFilter
With spatialFilter
.Geometry = pGeom
.SpatialRel = esriSpatialRelEnum.esriSpatialRelWithin
End With
Dim pSelSet As ISelectionSet = provFSel.SelectionSet
Dim provCursor As IFeatureCursor
pSelSet.Search(spatialFilter, True, provCursor)
Dim provFeature As IFeature = provCursor.NextFeature
只是爲了澄清 - 你不知道如果正在上.Search行拋出的異常?如果您無法實時調試它,您是否可以註釋掉它的大部分內容,然後逐步取消註釋行,直到引發錯誤爲止? 或者,您應該在嘗試使用它之前檢查provCursor是不是Nothing。 – Juffy
感謝您的評論。我做了評論,然後取消註釋以進行調試。這個異常真的在搜索行中拋出。我查了provCursor是什麼,但它總是沒有,所以我無法搜索。 「變量'provCursor'在被賦值之前通過引用傳遞,在運行時會導致空引用異常。」錯誤仍然存在。 – spearman