2

我正在尝试在 VB.Net 中为 arcmap 创建一个自定义工具。但是我在将 FeatureCursor 传递给 ISelectionSet 的 Search() 方法时遇到了问题。

这是我的代码的一部分:

    Dim pSelSet As ISelectionSet = provFSel.SelectionSet
    Dim provCursor As IFeatureCursor
    pSelSet.Search(spatialFilter, True, provCursor)
    Dim provFeature As IFeature = provCursor.NextFeature

在 Search() 内的 provCursor 下出现一个蓝色波浪线,表示“变量 'provCursor' 在被赋值之前通过引用传递。运行时可能导致空引用异常。” 我试过了

    Dim provCursor As IFeatureCursor = New FeatureCursor

但是 New FeatureCursor 下的曲线显示“'ESRI.ArcGIS.Geodatabase.FeatureCursorClass.Friend Sub New()' 在此上下文中不可访问,因为它是 'Friend'。”。我也试过

    Dim provCursor As IFeatureCursor = Nothing

但没有成功。

在我所有的调试尝试中,Arcmap 都因以下错误而崩溃:Microsoft.VisualBasic.dll 中发生了“System.NullReferenceException”类型的第一次机会异常

有人可以帮我弄清楚我的代码有什么问题吗?我真的很感激任何帮助。

-斯皮尔曼

我实际上不确定上述代码或之前的代码中是否发生错误。因此,我发布了整个子程序内容:

    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
4

1 回答 1

0

尝试:

pSelSet.Search(spatialFilter, True, out provCursor)
于 2013-01-03T15:19:32.297 回答