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