With...End With 문(Visual Basic)

하나의 개체나 구조체를 반복적으로 참조하는 일련의 문을 실행합니다.

With object
    [ statements ]
End With

구성 요소

용어

내용

object

필수적 요소로서, 변수 또는 식입니다. 기본 형식을 포함하여 모든 데이터 형식으로 계산될 수 있습니다.

statements

선택적 요소로서, object에서 실행하는 With와 End With 사이에 있는 하나 이상의 문입니다.

End With

필수적 요소로서, 이 With 블록의 정의를 마칩니다.

설명

With...End With 문을 사용하면 해당 개체의 이름을 다시 한정하지 않고도 지정한 개체에 대해 일련의 문을 실행할 수 있습니다. 개체의 정규화 경로가 긴 경우 With...End With 문을 사용하여 성능을 향상시킬 수 있습니다. 또한 With 블록을 사용하면 정규화 경로의 반복적인 입력 및 개체 요소 중 하나를 잘못 입력할 위험성을 줄일 수 있습니다.

예를 들어, 하나의 개체에 있는 여러 속성을 변경하는 경우 속성을 할당할 때마다 해당 개체를 참조하는 대신 With...End With 내에 속성 할당문을 삽입하여 해당 개체를 한 번만 참조합니다.

규칙

  • 데이터 형식. object의 데이터 형식은 모든 클래스 또는 구조체 형식이거나 Integer와 같은 Visual Basic 기본 형식일 수도 있습니다. .NET Framework에서는 With 블록 내부에 액세스할 수 있는 멤버를 포함하는 클래스 또는 구조체를 가진 모든 기본 형식을 제공합니다.

  • 선언. With 블록을 입력하기 전에 object를 선언해야 합니다. With 문에 개체를 선언할 수 없습니다.

  • 반복 횟수. With 블록은 반복문이 아닙니다. 블록 내부에 루프가 없으면 문은 한 번만 실행합니다.

  • 중첩 구조. 하나의 With...End With 구조에 다른 With...End With 구조를 중첩할 수 있습니다. 예제를 보려면 방법: 한 개체에서 여러 동작 수행(Visual Basic)을 참조하십시오.

    그러나 외부 문의 멤버가 내부 문 내에 마스크되어 있기 때문에 외부 With 블록에 속한 개체의 모든 멤버에 대해 내부 With 블록에 정규화된 개체 참조를 사용해야 합니다.

    또한 하나의 With...End With 구조 내에 다른 종류의 제어 구조를 중첩할 수 있습니다. 자세한 내용은 중첩 제어 구조(Visual Basic)를 참조하십시오.

  • 구조의 외부로 이동. Visual Basic에서는 With 블록의 외부에 제어를 이동하는 Exit 문(Visual Basic)을 지원하지 않습니다. 모든 문이 실행되기 전에 끝내려면 End With 문에 레이블을 삽입하고 GoTo 문 문을 사용하여 해당 레이블로 분기합니다. 자세한 내용은 방법: Label 문(Visual Basic)을 참조하십시오.

    With 블록의 외부에서 내부로 또는 내부에서 외부로 제어를 이동할 수 없습니다. 블록의 내부에서 프로시저를 호출할 수 있지만 제어는 다음에 나오는 문으로 돌아갑니다.

  • 다른 개체 액세스. With 블록이 시작되면 End With 문을 지날 때까지 object를 다시 할당할 수 없습니다. 따라서 해당 개체의 메서드와 속성을 다시 한정하지 않고도 이 메서드와 속성에 액세스할 수 있습니다. 다른 개체의 메서드와 속성을 사용할 수 있지만 메서드와 속성을 해당 개체 이름으로 한정해야 합니다.

예제

다음 예제에서는 With 블록을 사용하여 단일 개체에 대해 일련의 문을 실행합니다. 이 예제에서는 testObject라는 개체가 이미 만들어졌고 참조된 속성을 노출한다고 간주합니다.

With testObject
    .Height = 100
    .Text = "Hello, World"
    .ForeColor = System.Drawing.Color.Green
    .Font = New System.Drawing.Font(.Font,
        System.Drawing.FontStyle.Bold)
End With

개체 이니셜라이저에서 With 키워드

With 키워드는 개체 이니셜라이저에서도 사용할 수 있습니다. 자세한 내용 및 예제를 보려면 개체 이니셜라이저: 명명된 형식과 익명 형식(Visual Basic)익명 형식(Visual Basic)을 참조하십시오.

참고 항목

작업

방법: 한 개체에서 여러 동작 수행(Visual Basic)

방법: Label 문(Visual Basic)

참조

Exit 문(Visual Basic)

GoTo 문

개념

중첩 제어 구조(Visual Basic)

개체 이니셜라이저: 명명된 형식과 익명 형식(Visual Basic)

익명 형식(Visual Basic)