programing

VB.NET에서 A 클래스를 정적으로 표시

newstyles 2023. 5. 29. 09:57

VB.NET에서 A 클래스를 정적으로 표시

최근 질의응답에서 방금 언급한 것처럼 정적 클래스에서 상속할 수 없습니다.VB.NET 내부의 정적 클래스와 함께 규칙을 적용하는 방법은 무엇입니까?프레임워크가 C#과 VB 간에 호환되기 때문에 클래스를 정적으로 표시하는 방법이 있다는 것은 말이 되지만 방법이 없는 것 같습니다.

모듈 == 정적 클래스

상속할 수 없는 클래스만 원하는 경우NotInheritable클래스; 그러나 정적/공유는 아닙니다.모든 메소드, 속성 및 구성원을 다음과 같이 표시할 수 있습니다.Shared그러나 컴파일러에 의해 시행되지 않기 때문에 C#의 정적 클래스와 완전히 동일한 것은 아닙니다.

VB를 정말 원한다면요.C# 정적 클래스에 해당하는 Net, 사용Module상속할 수 없으며 모든 구성원, 속성 및 메서드가 정적/공유 상태입니다.

거의 다 왔습니다.당신은 또한 인스턴스화를 방지해야 합니다.

NotInheritable Class MyStaticClass

    ''' <summary>
    ''' Prevent instantiation.
    ''' </summary>
    Private Sub New()

    End Sub

    Public Shared Function MyMethod() As String

    End Function

End Class
  • 공유는 정적 클래스의 메서드와 같습니다.
  • Not Inheritable은 봉인된 것과 같습니다.
  • 개인 새로 만들기는 정적 클래스를 인스턴스화할 수 없는 것과 같습니다.

참조:
MSDN - 정적 클래스 및 정적 클래스 멤버

상속할 수 없는 클래스만 생성하려는 경우 C#에서 Sealed를 사용하고 VB를 사용할 수 있습니다.Net use 상속할 수 없습니다.

정적에 해당하는 VB.Net이 공유됩니다.

정적 클래스는 vb.net 에서 만들 수 있습니다.해결책은

Friend NotInheritable Class DB
    Public Shared AGE As Integer = 20
End Class

AGE 변수는 공개 정적이므로 다음과 같이 다른 코드에서 사용할 수 있습니다.

 Dim myage As Integer = DB.AGE

친구 = 공용, 상속할 수 없음 = 정적

CLR 관점에서 C# 정적 클래스는 "밀봉" 및 "추상" 클래스입니다.인스턴스는 추상적이므로 인스턴스를 만들 수 없으며 인스턴스가 봉인되어 있으므로 인스턴스에서 상속할 수 없습니다.나머지는 단지 컴파일러 마법일 뿐입니다.

언급URL : https://stackoverflow.com/questions/135841/marking-a-class-static-in-vb-net