VB中的静态类构造函数

App*_*Fzx 9 c# vb.net

有没有办法shared在VB.NET中为类创建构造函数?我在C#中一直这样做,如下所示,但我似乎无法在VB.NET中使用它.

static class someClass
{
    public static string somePublicMember;

    static someClass()
    {
        messageBox.show("I just constructed a static class");
    }
}
Run Code Online (Sandbox Code Playgroud)

执行以下代码时,将调用构造函数.

...
someSillyClass.someSillyPublicMember = 42;
...
Run Code Online (Sandbox Code Playgroud)

a static(shared)类甚至可以在VB.NET中使用构造函数吗?

Ehs*_*san 18

阅读文档这里.在你能做到的

Shared Sub New()
...
End Sub
Run Code Online (Sandbox Code Playgroud)

它将被调用.来自MSDN:

  1. 在创建类类型的任何实例之前运行共享构造函数.

  2. 共享构造函数在访问结构类型的任何实例成员之前运行,或者在显式调用结构类型的任何构造函数之前运行.调用为结构创建的隐式参数less constructor不会导致共享构造函数运行.

  3. 共享构造函数在引用任何类型的共享成员之前运行.

  4. 共享构造函数在加载从该类型派生的任何类型之前运行.

  5. 在单个程序执行期间,共享构造函数不会运行多次.


Gra*_*mas 5

有点像 VB.NET 中的普通构造函数:

Shared Sub New()

End Sub
Run Code Online (Sandbox Code Playgroud)


Neo*_*isk 1

不能在 VB.NET 中声明共享类。您有两个选择:

  • 使用模块。在这种情况下,您需要一些Init,您需要在执行其他操作之前调用它。
  • 使用带有共享方法的常规类(我的偏好),然后您可以共享子新内容。

  • 模块还可以有构造函数,因此您不需要显式调用 Init 方法 (2认同)