无法在模块的类中声明具有公共访问权限的变量

时间:2014-11-12 23:13:19

标签: vb.net visual-studio-2013

我正在制作基于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"中的newredim和"结构,但它们不起作用

我在MSDN上找到了article及其相关内容,但它并没有真正帮助我。

2 个答案:

答案 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

来源:http://msdn.microsoft.com/en-us/library/aaxss7da.aspx