Vb.net 从任何地方访问共享模块
我已经将一个C源代码转换为VB,其中包含一个Vb.net 从任何地方访问共享模块,vb.net,Vb.net,我已经将一个C源代码转换为VB,其中包含一个类记录器和一个静态类,其中包含记录器的实例 但是使用VB.NET,我不知道如何创建一个模块,我可以从同一名称空间中的其他源文件访问它 我只想像在C中一样访问对象: 或 但这只适用于同一个文件 Public Shared Module Loggers Public Shared ReadOnly MyLogger As Logger = New Logger() End Module Public Class Logger ..class co
类
记录器
和一个静态类
,其中包含记录器
的实例
但是使用VB.NET,我不知道如何创建一个模块
,我可以从同一名称空间中的其他源文件访问它
我只想像在C中一样访问对象:
或
但这只适用于同一个文件
Public Shared Module Loggers
Public Shared ReadOnly MyLogger As Logger = New Logger()
End Module
Public Class Logger
..class content...
End Class
编辑:由于我也尝试了“共享”,我想在项目级别出现了一些错误。我不知道您是如何错过这个或愚弄编译器的,但是在我的Visual Studio上,我在尝试创建共享模块时出错。模块是隐式共享的,不允许您显式应用
shared
关键字。我不知道您是如何错过这个或愚弄编译器的,但在我的Visual Studio上,我在尝试创建共享模块时出错。模块是隐式共享的,不允许显式应用shared
关键字。AModule
不能显式声明为shared
,因为它隐式地是shared
按以下方式更改代码,它应该可以工作:
Public Module Loggers
Public ReadOnly MyLogger As Logger = New Logger()
End Module
Public Class Logger
Public Sub MyMethod()
End Sub
End Class
参考资料:
A
模块
不能明确声明为共享
,因为它隐式地是共享
按以下方式更改代码,它应该可以工作:
Public Module Loggers
Public ReadOnly MyLogger As Logger = New Logger()
End Module
Public Class Logger
Public Sub MyMethod()
End Sub
End Class
参考资料:
类记录器
方法为共享
。不是类或模块。也已尝试。我添加了共享,因为这不起作用。创建一个新项目并尝试它。您是如何声明MyMethod的?我猜项目级别出现了问题。我尝试调用的方法是公共子信息(ByVal消息作为字符串,ByVal可选上下文作为字符串=Nothing)_message(“Info”,message,context)End Sub,但可能与此无关。IntelisSense甚至找不到模块。@Julien Holopainen Az声明类记录器
方法为共享
。不是类或模块。
Public Module Loggers
Public ReadOnly MyLogger As Logger = New Logger()
End Module
Public Class Logger
Public Sub MyMethod()
End Sub
End Class