我正在制作基于GUI的应用程序(表单),并遇到以下错误。
首先,我在模块中宣布以下内容
Module test_mod
Public Structure sub_struct
Public test_int() As Integer
Public Sub foo()
ReDim test_int(3)
End Sub
End Structure
Public Structure main_struct
Public test_aaa As sub_struct
End Structure
End Module
当然,我的真实代码比这更长,更复杂,但这段代码将是一个完美的例子。
然后我在主类
中声明这个test_mod
Public Class Form1
Public test_this_struct As New test_mod.main_struct
'do something here
End class
我的目的是让test_this_struct
可以被其他模块(这里没有显示)访问,这样主要课程就会简短而整洁。但是,它一直在抱怨以下内容:
test_this_struct
无法通过类test_mod.main_struct
在项目外部公开类型form1
。
我在这里看不到任何Private
,我厌倦了删除struct"中的new
,redim
和"结构,但它们不起作用
我在MSDN上找到了article及其相关内容,但它并没有真正帮助我。
答案 0 :(得分:3)
默认情况下modules and classes are Friend
(仅对您的程序集可见)。
但是,您的表单明确Public
,将其及其成员公开给全世界 - 这扩展了test_mod.main_struct
的可见性。
也将您的模块声明为Public
。
答案 1 :(得分:2)
试试这个:
Public Module test_mod
Public Structure sub_struct
Public test_int() As Integer
Public Sub foo()
ReDim test_int(3)
End Sub
End Structure
Public Structure main_struct
Public test_aaa As sub_struct
End Structure
End Module