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