在VB.NET中标记静态类

正如刚刚提到的问题和答案中所述 ,您不能从静态类inheritance。 如何执行与VB.NET中的静态类一起使用的规则? 由于框架在C#和VB之间是兼容的,所以有一种方法可以标记一个类的静态,但似乎没有办法。

模块==静态类

如果您只想要一个无法inheritance的类,请使用NotInheritable类。 但它不会是静态的/共享的。 您可以将所有的方法,属性和成员标记为Shared,但是这与C#中的静态类并不完全相同,因为它不是由编译器强制执行的。

如果你真的想要vb.net相当于一个C#静态类,使用一个模块。 它不能被inheritance,所有成员,属性和方法都是静态/共享的。

差不多了。 你也必须防止实例化。

NotInheritable Class MyStaticClass ''' <summary> ''' Prevent instantiation. ''' </summary> Private Sub New() End Sub Public Shared Function MyMethod() As String End Sub End Class 
  • 共享就像静态类的方法。
  • 不好的就像密封。
  • Private New就像静态类一样不能被实例化。

请参阅… MSDN – 静态类和静态类成员

如果你只是想创build一个你不能inheritance的类,在C#中可以使用Sealed,而在VB.Net中使用NotInheritable。

VB.Net相当于静态是共享的。

你可以在vb.net中创build静态类。 解决scheme是

 Friend NotInheritable Class DB Public Shared AGE As Integer = 20 End Class 

AGEvariables是公共静态的,你可以像这样在其他代码中使用它

  Dim myage As Integer = DB.AGE 

Friend = public,NotInheritable = static

从CLR的angular度来看,C#静态类只是“密封”和“抽象”类。 你不能创build一个实例,因为它是抽象的,你不能从它inheritance,因为它是封闭的。 其余的只是一些编译器的魔力。

我认为static的VB.NET等价物是Shared