有没有办法在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中使用构造函数?
答案 0 :(得分:17)
阅读文档here。你可以做到
Shared Sub New()
...
End Sub
它将被调用。来自MSDN:
在创建任何类类型的实例之前运行共享构造函数。
共享构造函数在访问结构类型的任何实例成员之前运行,或者在显式调用结构类型的任何构造函数之前运行。 调用为结构创建的隐式参数less constructor不会导致共享构造函数运行。
在引用任何类型的共享成员之前运行共享构造函数。
在加载从该类型派生的任何类型之前运行共享构造函数。
在单次执行a期间,共享构造函数不会运行多次 程序
答案 1 :(得分:3)
看起来像VB.NET中的普通构造函数:
Shared Sub New()
End Sub
答案 2 :(得分:2)
你试过了吗?
Class someClass
Public Shared somePublicMember As String
Shared Sub New()
messageBox.show("I just constructed a static class")
End Sub
End Class
答案 3 :(得分:1)
您无法在VB.NET中声明共享类。您有两种选择:
Init
,您需要先调用它。答案 4 :(得分:0)
VB.net中没有静态/共享类。
但是有些模块提供类似的功能,因此您将无法实例化它们。
您在VB.Net中的等效代码为:
function GetSerial: string;
begin
Result := JStringToString (TJBuild.JavaClass.SERIAL);
end;