2012-11-10 54 views
2

我想在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 
+0

只是爲了澄清 - 你不知道如果正在上.Search行拋出的異常?如果您無法實時調試它,您是否可以註釋掉它的大部分內容,然後逐步取消註釋行,直到引發錯誤爲止? 或者,您應該在嘗試使用它之前檢查provCursor是不是Nothing。 – Juffy

+0

感謝您的評論。我做了評論,然後取消註釋以進行調試。這個異常真的在搜索行中拋出。我查了provCursor是什麼,但它總是沒有,所以我無法搜索。 「變量'provCursor'在被賦值之前通過引用傳遞,在運行時會導致空引用異常。」錯誤仍然存​​在。 – spearman

回答

0

嘗試:

pSelSet.Search(spatialFilter, True, out provCursor) 
相關問題