模块 == 静态类
如果您只需要一个不能被继承的类,请使用NotInheritable
类; 但它不会是静态/共享的。您可以将所有方法、属性和成员标记为Shared
,但这不严格等同于C#中的静态类,因为编译器不会强制执行。
如果您真的想要VB.Net中与C#静态类等效的类,请使用Module
。它不能被继承,所有成员、属性和方法都是静态/共享的。
快到了,你还需要防止实例化。
NotInheritable Class MyStaticClass
''' <summary>
''' Prevent instantiation.
''' </summary>
Private Sub New()
End Sub
Public Shared Function MyMethod() As String
End Function
End Class
参见:
MSDN - 静态类和静态类成员
如果您只想创建一个无法继承的类,在C#中可以使用Sealed,在VB.Net中使用NotInheritable。
VB.Net中static的等价物是shared。
您可以在VB.NET中创建静态类。解决方案如下:
Friend NotInheritable Class DB
Public Shared AGE As Integer = 20
End Class
AGE变量是公共静态的,您可以像这样在其他代码中使用它
Dim myage As Integer = DB.AGE
Friend = 公共的,NotInheritable = 静态的。
从CLR的角度来看,C#的静态类只是一个"sealed"和"abstract"类。你不能创建实例,因为它是抽象的,也不能继承它,因为它是密封的。其余部分只是一些编译器的魔法。