VB.NET에서 공유 변수는 어떤 용도로 사용됩니까?
의 용도는 무엇입니까?Shared
VB.NET 변수?
과 같습니다.static
C# 및 대부분의 다른 언어로.즉, 클래스의 모든 개체가 변수, 속성 또는 메서드의 동일한 복사본을 사용합니다.정적인 메서드와 함께 사용할 경우 개체 인스턴스가 필요하지 않습니다.
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!");
다음은 이를 자세히 설명하는 좋은 기사입니다.
클래스의 개체 간에 공유되는 전체 응용 프로그램에 대한 단일 변수 인스턴스를 원할 때만 가능합니다.개체당 1개가 아니라,
언급URL : https://stackoverflow.com/questions/613998/what-is-the-use-of-a-shared-variable-in-vb-net
'programing' 카테고리의 다른 글
왜 Git이 Subversion보다 나은가요? (0) | 2023.05.26 |
---|---|
"forach" 루프의 반복을 건너뛰려면 어떻게 해야 합니까? (0) | 2023.05.21 |
pathlib를 사용하여 모든 하위 디렉터리를 재귀적으로 반복합니다. (0) | 2023.05.21 |
VB.NET의 기본 속성? (0) | 2023.05.21 |
Linq에서 SQL Like %를 수행하는 방법은 무엇입니까? (0) | 2023.05.21 |