从任何地方访问共享模块

时间:2018-01-10 12:57:52

标签: vb.net

我已将C#源转换为VB,其中包含class Loggerstatic class个包含Logger的实例。

但是使用VB.NET,我无法弄清楚如何创建Module我可以从同一名称空间中的其他源文件访问。

我只想像在C#中那样访问对象:

Loggers.MyLogger.MyMethod()

MyNamespace.Loggers.MyLogger.MyMethod()

但这只适用于同一个文件!

Public Shared Module Loggers
    Public Shared ReadOnly MyLogger As Logger = New Logger()
End Module

Public Class Logger
..class content...
End Class

编辑:由于我也试过"共享",我猜项目层面出了问题。

2 个答案:

答案 0 :(得分:1)

我不知道你是如何设法错过这个或欺骗编译器的,但是在我的Visual Studio上,当我尝试创建共享模块时出错。隐式共享模块,并且您不允许明确应用Shared关键字。

答案 1 :(得分:1)

Module无法明确声明为Shared,因为它隐式为Shared

更改您的代码,如下所示,它应该有效:

Public Module Loggers
    Public ReadOnly MyLogger As Logger = New Logger()
End Module

Public Class Logger
    Public Sub MyMethod()

    End Sub
End Class

参考文献: