다음을 통해 공유


Visual Basic 6.0 사용자를 위한 기본 속성 변경 사항

업데이트: 2007년 11월

Visual Basic 2008에서는 코드를 단순화하고 가독성을 향상시키기 위해 기본 속성 지원이 업데이트되었습니다.

Visual Basic 6.0

Visual Basic 6.0에서는 개체에 대해 기본 속성이 지원됩니다. 예를 들어, 다음 예제에서 Label 컨트롤의 Caption은 기본 속성이며 두 할당문은 동일한 의미를 갖습니다.

Dim lbl As Label 
lbl = "Important" 
lbl.Caption = "Important" 

기본 속성을 사용하면 Visual Basic 코드를 작성할 때 코딩을 어느 정도 줄일 수 있지만 다음과 같은 몇 가지 단점이 있습니다.

  • 코드를 읽기가 더 어려울 수 있습니다. 위의 예제에서 Label 컨트롤에 익숙하지 않은 경우에는 첫 번째 할당에서 "Important" 문자열이 lbl 변수에 직접 저장되는지 기본 속성에 저장되는지 구별할 수 없습니다.

  • 코드에서 사용할 개체가 지정된 경우 해당 개체가 기본 속성을 가지는지 여부를 확인하거나 기본 속성을 가질 경우 해당 속성을 확인하는 것이 어려울 수도 있습니다.

  • Visual Basic 언어에서 기본 속성을 사용하려면 Set 문이 필요합니다. 다음 예제에서는 Set을 사용하여 기본 속성이 아니라 개체 참조를 할당하는 방법을 보여 줍니다.

    Dim lbl1 As Label, lbl2 As Label 
    lbl1 = "Saving" ' Assign a value to lbl1's Caption property. 
    lbl2 = lbl1       ' Replace lbl2's Caption property with lbl1's. 
    Set lbl2 = lbl1   ' Replace lbl2 with an object reference to lbl1. 
    

Visual Basic 2008

Visual Basic 2008에서는 인수를 사용하는 경우에만 기본 속성이 지원됩니다. 이러한 구문 변경으로 인해 할당 대상을 지정하는 데 Let 및 Set 문을 사용할 필요가 없으며 이 두 문은 할당문에서는 사용되지 않습니다. Label 컨트롤에서 Caption 속성 대신 Text 속성이 사용되므로 위의 예제를 다음과 같이 작성할 수 있습니다.

Dim L1, L2 As New Label   ' Both become type Label
                          ' in the new version of Visual Basic.
L1.Text = "Saving"        ' Assign Text property. 
L2.Text = L1.Text         ' Copy Text property. 
L2 = L1                   ' Copy object reference.

Let가 구문적으로는 의미가 없지만 Visual Basic 2008에서도 계속 예약어로 지정되어 있으므로 이전 의미와 혼동되지 않습니다. Visual Basic 2008에서는 속성 값을 설정하는 속성 프로시저에 Set 문을 사용합니다.

매개 변수가 있는 속성

인수를 사용하는 기본 속성은 명확하며 Visual Basic 2008에서 지원됩니다. 기본 속성은 컬렉션 클래스에서 가장 일반적으로 나타납니다. 예를 들어, System.Windows.Forms 네임스페이스에 대해 Form 클래스는 다음 계층 구조를 지원합니다.

Form 개체

   Controls 속성: 이 폼에 대해 Control.ControlCollection 개체를 반환합니다.

      Control.ControlCollection 개체: 기본 속성은 Item입니다.

         Item 속성: 컬렉션의 항목 하나에 대해 Control 개체를 반환합니다.

            Control 개체

Controls 속성은 Control.ControlCollection 개체를 반환하고 Item 속성은 Control 개체를 반환합니다. 다음 예제에서는 Visual Basic 2008에서 기본 속성을 올바르게 사용한 경우와 잘못 사용한 경우를 보여 줍니다.

Dim F As New Form   ' Assume F has been created and initialized.
F.Controls.Item(0).Text = "Stop"  ' Valid -- no default properties used. 
F.Controls(0).Text = "Stop"  ' Valid -- Item is parameterized. 
'F(0).Text = "Stop"  ' INVALID -- Form does not have a default property. 
'F.Controls(0) = "Stop"  ' INVALID -- No default property on Control. 

기본 속성 선언

Visual Basic 2008에서는 Default 키워드를 사용하여 속성을 선언하면 해당 속성이 기본 속성으로 지정됩니다. 속성 이름을 오버로드하는 경우에는 모든 오버로드 선언에서 Default를 지정해야 합니다. 기본 속성을 Shared 또는 Private으로 선언할 수는 없습니다.

참고 항목

개념

Visual Basic 6.0 사용자를 위한 속성 프로시저 변경 사항

프로그래밍 요소 지원 변경 사항 요약

참조

Text

Label

Set 문(Visual Basic)

System.Windows.Forms

Form

Control.ControlCollection

Control

Default(Visual Basic)