Как указано в недавнем question и , вы не можете наследовать от статический класс. Как применять правила, которые соответствуют статическим классам внутри VB.NET? Поскольку структура совместима между С# и VB, было бы разумно, что существует способ отметить статический класс, но, похоже, не существует способа.
Модуль == статический класс
Если вам нужен только класс, который вы не можете наследовать, используйте класс NotInheritable. Но это не будет static/Shared. Вы можете отметить все методы, свойства и члены как разделенные, но это не строго то же самое, что и статический класс в С#, поскольку он не применяется компилятором.
Если вам действительно нужен эквивалент vb.net для статического класса С#, используйте модуль. Он не может быть унаследован, и все члены, свойства и методы статичны/разделены.
Почти готово. Вы также должны предотвратить создание экземпляров.
NotInheritable Class MyStaticClass
''' <summary>
''' Prevent instantiation.
''' </summary>
Private Sub New()
End Sub
Public Shared Function MyMethod() As String
End Sub
End Class
Увидеть:
MSDN - Статические классы и члены статических классов
Если вы просто хотите создать класс, который вы не можете наследовать, в С# вы можете использовать Sealed, а в VB.Net используйте NotInheritable.
Эквивалент VB.Net статики является общим.
Вы можете создать статический класс в vb.net. Решение
Friend NotInheritable Class DB
Public Shared AGE As Integer = 20
End Class
AGE variable является общедоступной, вы можете использовать ее в другом коде, как это показано
Dim myage As Integer = DB.AGE
Друг = общедоступный, NotInheritable = статический
С точки зрения CLR, статический класс С# является просто "запечатанным" и "абстрактным" классом. Вы не можете создать экземпляр, потому что он абстрактный, и вы не можете наследовать его, поскольку он запечатан. Остальное - это просто магия компилятора.
Я думаю, что эквивалент VB.NET static
равен Shared
.