programing

VB.NET에서 공유 변수는 어떤 용도로 사용됩니까?

i4 2023. 5. 21. 10:58
반응형

VB.NET에서 공유 변수는 어떤 용도로 사용됩니까?

의 용도는 무엇입니까?SharedVB.NET 변수?

과 같습니다.staticC# 및 대부분의 다른 언어로.즉, 클래스의 모든 개체가 변수, 속성 또는 메서드의 동일한 복사본을 사용합니다.정적인 메서드와 함께 사용할 경우 개체 인스턴스가 필요하지 않습니다.

MyClass.DoSomething()

보다는

Dim oObject as New MyClass()
oObject.DoSomething()

VB.NET의 "Shared" 키워드는 C#의 "static" 키워드와 동일합니다.

VB.NET에서는 공유 키워드를 클래스 내의 Dim, Event, Function, Operator, Property 및 Sub 문에 적용할 수 있지만 C#에서는static키워드는 일반 클래스 내에서 이러한 문에 모두 적용할 수 있으며 클래스 수준에서 전체 클래스를 정적으로 만들 수도 있습니다.

"공유" 또는 "정적" 메서드는 유형/클래스의 인스턴스에 대해 동작하는 대신 "유형"(즉, 클래스)에 대해 동작합니다.부터Shared메소드(또는 변수)는 인스턴스가 아닌 형식에 따라 작동하며, 비공유(예: 인스턴스) 메소드 또는 변수의 경우 변수 또는 메소드의 "복사본"은 여러 복사본(인스턴스당 하나씩)과는 반대로 항상 하나만 존재할 수 있습니다.

예:클래스가 있다면 MyMethod라는 하나의 비공유 메서드로 MyClass라고 부릅니다.

Public Class MyClass
    Public Sub MyMethod()
        ' Do something in the method
    End Sub
End Class

이 메서드를 호출하려면 메서드를 호출할 클래스의 인스턴스가 필요합니다.다음과 같은 것:

Dim myvar As MyClass = New MyClass()
myvar.MyMethod()

이 메서드가 "공유" 메서드로 만들어진 경우(메소드 정의에 "공유" 한정자를 추가하여) 메서드를 호출할 클래스의 인스턴스가 더 이상 필요하지 않습니다.

Public Class MyClass
    Public Shared Sub MyMethod()
        ' Do something in the method
    End Sub
End Class

그리고 나서:

MyClass.MyMethod()

.NET 프레임워크 자체에서도 이러한 예를 볼 수 있습니다.예를 들어, "string" 유형에는 많은 정적/공유 메서드가 있습니다.예.

' Using an instance method (i.e. Non-shared) of the string type/class.
Dim s As String = "hello"
s.Replace("h", "j")

' Using a static/shared method of the string type/class.
s = String.Concat(s, " there!");

다음은 이를 자세히 설명하는 좋은 기사입니다.

VB.NET의 공유 멤버 및 인스턴스 멤버

클래스의 개체 간에 공유되는 전체 응용 프로그램에 대한 단일 변수 인스턴스를 원할 때만 가능합니다.개체당 1개가 아니라,

언급URL : https://stackoverflow.com/questions/613998/what-is-the-use-of-a-shared-variable-in-vb-net

반응형