我对VB.NET中的Static
实现感到困惑。在C#中,我们可以创建静态类和静态方法来为我们的应用程序编写实用程序方法。
现在,VB.NET允许我们创建Module
来代替静态类。如果我们在模块中创建一个方法,默认情况下它会变为静态。但在我的应用程序中,我编写了以下代码:
Public Class Utility
Public Shared Function GetValue() As String
// My code
End Function
End Class
通过编写代码,我能够以Utility.GetValue()
的形式访问实用程序方法。由于这不是静态类,我应该实例化它的一个对象。但是此方法适用于Utility
现在我的问题是:
我尝试过多篇文章,但没有找到这个确切的答案。请帮忙。
答案 0 :(得分:27)
VB.NET模块是一个静态类。编译器会为您处理此问题。其上的每个方法和属性都是static
(Shared
)。
具有静态(共享)成员的类正是:具有静态(共享)成员的类。您不必创建它的实例来访问静态(共享)方法,但您可以访问其任何实例成员。
您还可以在模块中定义Sub New()
,它将成为模块的静态构造函数。第一次尝试调用模块上的成员时,将调用静态构造函数来初始化静态类。
答案 1 :(得分:4)
使用“ shared”使类子或函数“ static”(在C#的意义上)。 在VB中,在这种情况下,共享就像是静态的同义词。