比如在同一个项目中有两个文件:
文件1:Module1.vb
Module Module1
Class test
End Class
End Module
文件2:Form1.vb
Public Class Form1
Public cls As test
?End Class
此时在Form1.vb文件中的Public cls As test就会报错:
'cls' cannot expose type 'Module1.test'outside the project through class 'Form1'.
我很疑惑,都是Public的Access Level,为什么不能声明呢。
而将Public clsAs test改成Private clsAs test就不会报错了。
或者将文件2的Public Class Form1写到Module中(如下),也可以解决这个错误,虽然这样的话就不是我要的了。
文件2:Form1.vb(修改)
Module Module2
?Public Class Form1
?Public cls As test
?End Class
End Module
------解决思路----------------------
我已经上面提到,模块内声明的共有元素只能在其他类内可以访问,但是实例化的变量不能再次向外公开类型Public,
只能做类内访问。”
不管Form窗体类内或类模块内都是一样的。
至于解决方案已经又上面提到,想避免这种问题,独立创建Class类或,类内嵌套起来。
最后我再次说明,Module模块与Class类模块不同的是Module 模块不能被实例化,而且是Shared共享类型的,模块内的元素默认值是Public。这是因为,只有这样其他类内可以访问模块内的共享元素。