我已将C#源转换为VB,其中包含class
Logger
和static 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
编辑:由于我也试过"共享",我猜项目层面出了问题。
答案 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
参考文献: