函数返回列表(结构)
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)
?我真正想做的是确保对于列表中的每个结果,SectionName
、SectiontmpName
、SectionNewName
和 Section
保持相互关联。
VB.NET 是一种类型安全的语言。这意味着,除其他外,如果您两次声明同一类型,它们将被视为两个完全不同且不兼容的类型,即使它们包含完全相同的成员。
试试这个:
Sub Main()
' ...
Dim result As List(Of FSE.frmRenameSections.StructSection) = MyMethod()
' ...
End Sub
其中 MyMethod
是返回列表的方法的名称。
您的第一条错误消息提到了两个不同的 class:FSE.frmRenameSections.StructSection
和 FSE.ThisDocument.StructSection
。对我来说,这看起来就像您在不同的范围内两次定义了相同的 class 。尝试将 StructSection
拆分为一个独立的 class,不嵌入任何其他 class。或者,如果它嵌入在其他 class 中,请使用其完整的 class 名称明确命名,包括嵌入层次结构。
我有一个返回 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)
?我真正想做的是确保对于列表中的每个结果,SectionName
、SectiontmpName
、SectionNewName
和 Section
保持相互关联。
VB.NET 是一种类型安全的语言。这意味着,除其他外,如果您两次声明同一类型,它们将被视为两个完全不同且不兼容的类型,即使它们包含完全相同的成员。
试试这个:
Sub Main()
' ...
Dim result As List(Of FSE.frmRenameSections.StructSection) = MyMethod()
' ...
End Sub
其中 MyMethod
是返回列表的方法的名称。
您的第一条错误消息提到了两个不同的 class:FSE.frmRenameSections.StructSection
和 FSE.ThisDocument.StructSection
。对我来说,这看起来就像您在不同的范围内两次定义了相同的 class 。尝试将 StructSection
拆分为一个独立的 class,不嵌入任何其他 class。或者,如果它嵌入在其他 class 中,请使用其完整的 class 名称明确命名,包括嵌入层次结构。