如何在vb.net中为一个类运行一次代码?

如何在vb.net中为一个类运行一次代码?,vb.net,Vb.net,基本上我有一个带有静态共享成员的类。我想要一个运行一次的代码来启动静态共享成员 Class algorithm Public name As String Public lowPriceatNiceHash As Double Public highPriceatNiceHash As Double Public fixedPriceatNicehash As Double Shared dictOfAlgorithm As Generic.Dictio

基本上我有一个带有静态共享成员的类。我想要一个运行一次的代码来启动静态共享成员

Class algorithm
    Public name As String
    Public lowPriceatNiceHash As Double
    Public highPriceatNiceHash As Double
    Public fixedPriceatNicehash As Double

    Shared dictOfAlgorithm As Generic.Dictionary(Of String, algorithm)
End Class

现在,dictOfAlgorithm字典应该在类开始使用时设置为一个新的空字典。一次且仅一次。

在其声明的位置初始化它:

Class ...

    Public Shared dictOfAlgorithm As Generic.Dictionary(Of String, algorithm) = New Generic.Dictionary(Of String, algorithm)

End Class
或使用.cctor:

Class ...

    '' Shared .ctor, called once the first time the class is accessed.
    Shared Sub New()
        dictOfAlgorithm = New Generic.Dictionary(Of String, algorithm)
    End Sub

    Public Shared dictOfAlgorithm As Generic.Dictionary(Of String, algorithm)

End Class

什么是cctor?是的,我听说他们有。共享子New可以声明为公共吗?@F0r3v3r-a-N00b是的,可以,子New只是对象的构造,在使用New关键字创建对象时运行。它可以有任何访问修饰符,但shared通常表示它正在初始化一个共享变量:)@ProNinjaCat当试图声明一个新的公共共享子对象时,Public关键字会高亮显示。@JimThio.cctor通常用作静态构造函数或类构造函数的缩写。它的来源是当您使用反射获取调用方信息并指定CallerMemberName属性时返回的字符串。-看这里-