VB.NET中的静态方法实现

时间:2015-06-24 16:44:28

标签: .net vb.net static

我对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

的类和对象

现在我的问题是:

  1. 我所做的实现是否会违反模块提供的静态类的任何功能?
  2. 这与实施模块有什么区别呢?
  3. 如果我改为创建一个模块,那么它的范围是否与此类相同?我希望在整个项目中以及引用此方法的其他项目中访问该方法。
  4. 我尝试过多篇文章,但没有找到这个确切的答案。请帮忙。

2 个答案:

答案 0 :(得分:27)

VB.NET模块一个静态类。编译器会为您处理此问题。其上的每个方法和属性都是staticShared)。

具有静态(共享)成员的类正是:具有静态(共享)成员的类。您不必创建它的实例来访问静态(共享)方法,但您可以访问其任何实例成员。

您还可以在模块中定义Sub New(),它将成为模块的静态构造函数。第一次尝试调用模块上的成员时,将调用静态构造函数来初始化静态类。

答案 1 :(得分:4)

使用“ shared”使类子或函数“ static”(在C#的意义上)。 在VB中,在这种情况下,共享就像是静态的同义词。