방법: Visual Basic에서 기본 속성 선언 및 호출

기본 속성은 지정하지 않은 상태에서 코드에서 액세스할 수 있는 클래스 또는 구조체 속성입니다. 호출 코드에서 클래스나 구조체의 이름을 지정하지만 속성의 이름이 지정되지 않았으며 컨텍스트에서 속성에 대한 액세스가 허용할 경우 Visual Basic은 해당 클래스나 구조체의 기본 속성(있을 경우)에 대한 액세스를 확인합니다.

클래스나 구조체는 하나의 기본 속성만 가질 수 있습니다. 그러나 기본 속성을 오버로드할 수 있으며 여러 버전의 기본 속성을 가질 수 있습니다.

자세한 내용은 Default(Visual Basic)을 참조하십시오.

기본 속성을 선언하려면

  1. 일반적인 방법으로 속성을 선언합니다. Shared 또는 Private 키워드를 지정하지 마십시오.

  2. 속성 선언에 Default 키워드를 포함합니다.

  3. 속성에 대한 매개 변수를 적어도 하나 이상 지정합니다. 적어도 하나 이상의 인수를 갖지 않는 기본 속성은 정의할 수 없습니다.

    Default Property myProperty(ByVal index As Integer) As String
    

기본 속성을 호출하려면

  1. 포함하는 클래스 또는 구조체 형식의 변수를 선언합니다.

    Dim x As New class1(3)
    
  2. 일반적으로 속성 이름을 포함하는 식에는 변수 이름만 사용합니다.

    MsgBox(x)
    
  3. 변수 이름 다음에 인수 목록을 괄호로 묶어 지정합니다. 기본 속성은 적어도 하나 이상의 인수를 가져야 합니다.

    MsgBox(x(1))
    
  4. 기본 속성 값을 검색하려면 식에서 인수 목록과 함께 변수 이름을 사용하거나 대입문에서 등호(=) 기호 다음에 변수 이름을 사용합니다.

    MsgBox(x(1) & x(2) & x(3))
    
  5. 기본 속성 값을 설정하려면 대입문의 왼쪽에서 변수 이름과 함께 인수 목록을 사용합니다.

    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    
  6. 다른 속성에 액세스할 때와 마찬가지로 항상 기본 속성 이름을 변수 이름과 함께 지정할 수 있습니다.

    x.myProperty(1) = "Hello"
    x.myProperty(2) = " "
    x.myProperty(3) = "World"
    

예제

다음 예제에서는 클래스에서 기본 속성을 선언합니다.

Public Class class1
    Private myStrings() As String
    Sub New(ByVal size As Integer)
        ReDim myStrings(size)
    End Sub
    Default Property myProperty(ByVal index As Integer) As String
        Get
            ' The Get property procedure is called when the value
            ' of the property is retrieved.
            Return myStrings(index)
        End Get
        Set(ByVal Value As String)
            ' The Set property procedure is called when the value
            ' of the property is modified.
            ' The value to be assigned is passed in the argument 
            ' to Set.
            myStrings(index) = Value
        End Set
    End Property
End Class

이 코드 예제는 IntelliSense 코드 조각으로도 사용할 수 있습니다. 이 코드 조각은 코드 조각 선택기의 Visual Basic 언어에 있습니다. 자세한 내용은 방법: IntelliSense 코드 조각 삽입을 참조하십시오.

다음 예제에서는 기본 속성 myProperty를 class1 클래스에서 호출하는 방법을 보여 줍니다. 세 개의 대입문은 값을 myProperty에 저장하고 MsgBox 호출은 이러한 값을 읽습니다.

Sub Test()
    Dim x As New class1(3)
    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    MsgBox(x(1) & x(2) & x(3))
End Sub

기본 속성이 사용되는 가장 일반적인 경우는 다양한 컬렉션 클래스의 Item 속성입니다.

강력한 프로그래밍

기본 속성을 사용하면 소스 코드 문자 수가 약간 줄어들 수 있지만 코드를 읽기가 더 어려워질 수 있습니다. 호출하는 코드에서 사용자의 클래스나 구조체를 잘 모르는 데 클래스나 구조체 이름을 참조하는 경우 해당 참조가 클래스나 구조체 자체를 참조하는지, 아니면 기본 속성을 참조하는지 확실히 알 수 없습니다. 이 경우에는 컴파일러 오류나 모호한 런타임 논리 오류가 발생할 수 있습니다.

항상 Option Strict 문을 사용하여 컴파일러 형식 검사를 On으로 설정하면 기본 속성 오류가 발생할 가능성을 다소 줄일 수 있습니다.

코드에서 미리 정의된 클래스나 구조체를 사용할 계획이라면 기본 속성을 갖고 있는지, 갖고 있다면 이름이 무엇인지 확인해야 합니다.

이러한 단점으로 인해서 기본 속성을 정의하지 않는 것을 고려할 필요가 있습니다. 또한 코드 가독성을 위해 모든 속성, 심지어 기본 속성까지도 항상 명시적으로 참조하는 것을 고려해야 합니다.

참고 항목

작업

방법: 속성 만들기(Visual Basic)

방법: 액세스 수준이 혼합된 속성 선언(Visual Basic)

방법: 속성 프로시저 호출(Visual Basic)

방법: 속성 값 입력(Visual Basic)

방법: 속성에서 값 가져오기(Visual Basic)

참조

Property 문

Default(Visual Basic)

개념

Property 프로시저(Visual Basic)

프로시저 매개 변수 및 인수(Visual Basic)

Visual Basic에서 속성과 변수의 차이점