[英]Static class constructor in VB
有没有办法在 VB.NET 中为shared
类创建构造函数? 我一直在 C# 中这样做,如下所示,但我似乎无法让它在 VB.NET 中工作。
static class someClass
{
public static string somePublicMember;
static someClass()
{
messageBox.show("I just constructed a static class");
}
}
执行以下代码时,将调用构造函数。
...
someSillyClass.someSillyPublicMember = 42;
...
static
( shared
)类甚至可以在 VB.NET 中具有构造函数吗?
在此处阅读文档。 在你可以做
Shared Sub New()
...
End Sub
它将被调用。 来自 MSDN:
共享构造函数在创建类类型的任何实例之前运行。
共享构造函数在访问结构类型的任何实例成员之前或在显式调用结构类型的任何构造函数之前运行。 调用为结构创建的隐式无参数构造函数不会导致共享构造函数运行。
共享构造函数在引用任何类型的共享成员之前运行。
共享构造函数在加载从该类型派生的任何类型之前运行。
在程序的单次执行期间,共享构造函数不会运行多次。
有点像 VB.NET 中的普通构造函数:
Shared Sub New()
End Sub
你有没有尝试过:
Class someClass
Public Shared somePublicMember As String
Shared Sub New()
messageBox.show("I just constructed a static class")
End Sub
End Class
VB.net 中没有静态/共享类。
但是有提供类似的模块,因此您将无法实例化它们。
您在 VB.Net 中的等效代码将是(使用 VS2017 测试):
Module someClass
Public somePublicMember As String
Sub New()
messageBox.show("I just constructed a static class (not really) [sic]")
End Sub
End Module
您不能在 VB.NET 中声明共享类。 您有两个选择:
Init
,您需要先调用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.