函数返回列表(结构)

Function returning List(Of Structure)

我有一个返回 List(Of StructSection) 的函数,StructSection 的定义如下:

Public Structure StructSection 'structure for Section information
    Public SectionName As String
    Public SectiontmpName As String
    Public SectionNewName As String
    Public Section As Autodesk.Revit.DB.View
End Structure

当我尝试在 Sub Main 中使用该列表时,我收到此消息:

Type 'StructSection' is not defined. (BC30002)

因为我还没有定义它,所以这对我来说很有意义。但是,当我通过将上面的 StrucSection 定义粘贴到我的主代码中来定义它时,我得到了这个错误:

Value of type 'System.Collections.Generic.List(Of FSE.frmRenameSections.StructSection)' cannot be converted to 'System.Collections.Generic.List(Of FSE.ThisDocument.StructSection)'.`

尽管这两个结构的定义方式完全相同。谁能告诉我如何使用 List(of StructSection)?我真正想做的是确保对于列表中的每个结果,SectionNameSectiontmpNameSectionNewNameSection 保持相互关联。

VB.NET 是一种类型安全的语言。这意味着,除其他外,如果您两次声明同一类型,它们将被视为两个完全不同且不兼容的类型,即使它们包含完全相同的成员。

试试这个:

Sub Main()
    ' ...
    Dim result As List(Of FSE.frmRenameSections.StructSection) = MyMethod()
    ' ...
End Sub

其中 MyMethod 是返回列表的方法的名称。

您的第一条错误消息提到了两个不同的 class:FSE.frmRenameSections.StructSectionFSE.ThisDocument.StructSection。对我来说,这看起来就像您在不同的范围内两次定义了相同的 class 。尝试将 StructSection 拆分为一个独立的 class,不嵌入任何其他 class。或者,如果它嵌入在其他 class 中,请使用其完整的 class 名称明确命名,包括嵌入层次结构。