在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
。