답변
모듈 == 정적 클래스
상속 할 수없는 클래스를 원하면 클래스를 사용하십시오 NotInheritable
. 하지만 정적 / 공유되지 않습니다. 모든 메서드, 속성 및 멤버를으로 표시 할 수 Shared
있지만 컴파일러에 의해 적용되지 않기 때문에 C #의 정적 클래스와 완전히 동일하지는 않습니다.
C # 정적 클래스에 해당하는 VB.Net을 실제로 원하는 경우 Module
. 상속 될 수 없으며 모든 멤버, 속성 및 메서드는 정적 / 공유입니다.
답변
거의 다 왔어. 인스턴스화도 방지해야합니다.
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는 정적 클래스를 인스턴스화 할 수없는 것과 같습니다.
답변
상속 할 수없는 클래스를 만들려는 경우 C #에서는 Sealed를 사용하고 VB.Net에서는 NotInheritable을 사용할 수 있습니다.
정적에 해당하는 VB.Net은 공유됩니다.
답변
vb.net에서 정적 클래스를 만들 수 있습니다. 해결책은
Friend NotInheritable Class DB
Public Shared AGE As Integer = 20
End Class
AGE 변수는 공개 정적이므로 다음과 같이 다른 코드에서 사용할 수 있습니다.
Dim myage As Integer = DB.AGE
친구 = 공개, NotInheritable = 정적
답변
CLR 관점에서 C # 정적 클래스는 “봉인 된”클래스와 “추상적 인”클래스입니다. 추상이기 때문에 인스턴스를 만들 수 없으며 봉인되어 있기 때문에 상속 할 수 없습니다. 나머지는 컴파일러 마법입니다.