With...End With 문(Visual Basic)
하나의 개체나 구조체를 반복적으로 참조 하는 일련의 문 실행 합니다.
With object
[ statements ]
End With
요소
용어 |
정의 |
expression |
필수 요소.개체를 반환 하는 식입니다.식 복잡 한 것 이므로 한 번만 계산 됩니다.식 기본 형식을 포함 하 여 모든 데이터 형식으로 계산할 수 있습니다. |
statements |
선택 사항입니다.사이의 하나 이상의 문 With 및 End With 를 계산 하 여 생성 되는 개체의 멤버를 참조할 수 있습니다 expression. |
End With |
필수 요소.이 With 블록의 정의를 마칩니다. |
설명
사용 하 여 With...End With에 개체의 이름이 여러 번 지정 하지 않고 지정 된 개체에 대해 일련의 문 수행할 수 있습니다.내는 With 문 블록, 마침표로 시작 하는 개체의 구성원을 지정할 수 있습니다 처럼의 With 문 개체 앞에 그.
예를 들어 단일 개체의 여러 속성을 변경 하려면 내에 속성 할당 문을 배치는 With...End With 블록 대신 배정 된 각 속성에 대해 한 번씩 개체를 한 번만 참조 합니다.
동일한 개체에서 여러 문 코드에 액세스 하는 경우에 다음과 같은 사용 하 여 이점이 있는 With 문.
복잡 한 식은 여러 번 또는 결과 해당 멤버를 여러 번 참조할 수 임시 변수에 할당할 필요가 없습니다.
반복적인 한정 표현식을 제거 하 여 코드를 읽기 쉽게 만들 수 있습니다.
데이터 형식은 expression Visual Basic 기본 형식이 경우에 모든 클래스 또는 구조체 형식으로 수 있습니다 Integer.
expression 블록에 들어갈 때 한 번 계산 됩니다.다시 할당할 수 없습니다.는 expression 내에서 With 블록.
내는 With 블록을 다시 한정 하지 않고도 메서드 및 속성을 지정 된 개체에만 액세스할 수 있습니다.다른 개체의 메서드와 속성을 사용할 수 있지만 메서드와 속성을 해당 개체 이름으로 한정해야 합니다.
하나를 넣을 수 있습니다 With...End With 내에서 다른 문을.중첩 With...End With 문에서 참조 되는 개체를 컨텍스트를 명확 하지 않을 경우 혼란 스 러 울 수 있습니다.외부에 있는 개체에 대 한 정규화 된 참조를 제공 해야 With 블록 내의 내부에서 개체를 참조할 때 With 블록입니다.
으로 분기할 수는 With 문 블록에서 블록 밖에 서.
루프 블록이 있는 경우를 제외 하 고, 문이 한 번만 실행 합니다.다른 종류의 제어 구조를 중첩할 수 있습니다.자세한 내용은 중첩 제어 구조(Visual Basic)을 참조하십시오.
[!참고]
사용할 수 있는 With 또한 키워드 다음에 개체 이니셜라이저입니다.자세한 내용 및 예제를 보려면 개체 이니셜라이저: 명명된 형식과 익명 형식(Visual Basic) 및 익명 형식(Visual Basic)를 참조하십시오.
사용 하는 경우는 With 속성이 나 마찬가지로 인스턴스화할 했으면, 객체의 필드는 초기화 블록 대신 개체 이니셜라이저를 사용 하는 것이 좋습니다.
예제
다음 예에서는 각 With 블록을 단일 개체에 대해 일련의 문 실행 합니다.
Private Sub AddCustomer()
Dim theCustomer As New Customer
With theCustomer
.Name = "Coho Vineyard"
.URL = "http://www.cohovineyard.com/"
.City = "Redmond"
End With
With theCustomer.Comments
.Add("First comment.")
.Add("Second comment.")
End With
End Sub
Public Class Customer
Public Property Name As String
Public Property City As String
Public Property URL As String
Public Property Comments As New List(Of String)
End Class
다음 예제에서는 중첩 With…End With 문.중첩 된 With 문 구문의 내부 개체를 나타냅니다.
Dim theWindow As New EntryWindow
With theWindow
With .InfoLabel
.Content = "This is a message."
.Foreground = Brushes.DarkSeaGreen
.Background = Brushes.LightYellow
End With
.Title = "The Form Title"
.Show()
End With