방법: 선택적 매개 변수를 사용하는 프로시저 오버로드(Visual Basic)

프로시저에 하나 이상의 Optional(Visual Basic) 매개 변수가 있을 경우 암시적 오버로드와 일치하는 오버로드된 버전을 정의할 수 없습니다. 자세한 내용은 프로시저를 오버로드할 때 고려해야 할 사항(Visual Basic)에서 "선택적 매개 변수의 암시적 오버로드"를 참조하십시오.

단일 선택적 매개 변수

하나의 선택적 매개 변수를 가지는 프로시저를 오버로드하려면

  1. 매개 변수 목록에서 선택적 매개 변수를 포함하는 Sub 또는 Function 선언문을 작성합니다. 이 오버로드된 버전에서 Optional 키워드를 사용하지 마십시오.

  2. Sub 또는 Function 키워드 앞에 Overloads(Visual Basic) 키워드를 사용합니다.

  3. 호출 코드에서 선택적 인수를 제공할 경우 실행해야 하는 프로시저 코드를 작성합니다.

  4. 프로시저를 상황에 맞게 End Sub 또는 End Function 문으로 종료합니다.

  5. 매개 변수 목록에 선택적 매개 변수를 포함하지 않는다는 점을 제외하고 첫 번째 선언과 동일한 두 번째 선언문을 작성합니다.

  6. 호출 코드에서 선택적 인수를 제공하지 않을 경우 실행해야 하는 프로시저 코드를 작성합니다. 프로시저를 상황에 맞게 End Sub 또는 End Function 문으로 종료합니다.

    다음 예제에서는 선택적 매개 변수와 함께 정의된 프로시저, 두 개의 오버로드된 프로시저의 동등한 집합, 유효한 오버로드된 버전과 유효하지 않은 오버로드된 버전의 예를 보여 줍니다.

    Sub q(ByVal b As Byte, Optional ByVal j As Long = 6)
    
    ' The preceding definition is equivalent to the following two overloads.
    ' Overloads Sub q(ByVal b As Byte)
    ' Overloads Sub q(ByVal b As Byte, ByVal j As Long)
    
    ' Therefore, the following overload is not valid because the signature is already in use.
    ' Overloads Sub q(ByVal c As Byte, ByVal k As Long)
    ' The following overload uses a different signature and is valid.
    Overloads Sub q(ByVal b As Byte, ByVal j As Long, ByVal s As Single)
    

여러 선택적 매개 변수

둘 이상의 선택적 매개 변수를 가진 프로시저의 경우 일반적으로 세 개 이상의 오버로드된 버전이 필요합니다. 예를 들어, 두 개의 선택적 매개 변수가 존재하고 호출 코드가 매개 변수를 서로 독립적으로 제공하거나 생략할 수 있는 경우 네 개의 오버로드된 버전(제공된 인수의 가능한 각 조합별로 하나씩)이 필요합니다.

선택적 매개 변수의 수가 증가하면 오버로드의 복잡도가 증가합니다. 제공된 인수의 일부 조합이 허용되지 않는 경우가 아니라면 N개의 선택적 매개 변수에 대해 2 ^ N개의 오버로드된 버전이 필요합니다. 프로시저의 특성에 따라 논리를 분명히 하기 위해서 오버로드된 모든 버전을 정의하기 위한 수고를 들여야 할 수 있습니다.

둘 이상의 선택적 매개 변수를 가진 프로시저를 오버로드하려면

  1. 제공된 선택적 인수의 조합 중에서 프로시저의 논리에 허용되는 조합을 결정합니다. 하나의 선택적 매개 변수가 다른 선택적 매개 변수에 의존할 경우 허용되지 않는 인수 조합이 발생할 수 있습니다. 예를 들어, 하나의 매개 변수에서 배우자의 이름이 허용되고 다른 매개 변수에서 배우자의 나이가 허용될 경우 나이를 제공하지만 이름을 생략하는 인수 조합은 허용되지 않습니다.

  2. 제공된 선택적 인수의 허용되는 각 조합에 대해 해당 매개 변수 목록을 정의하는 Sub 또는 Function 선언문을 작성합니다. Optional 키워드는 사용하지 마십시오.

  3. 각 선언에서 Sub 또는 Function 키워드 앞에 Overloads(Visual Basic) 키워드를 사용합니다.

  4. 각 선언 다음에는 호출 코드가 해당 선언의 매개 변수 목록에 해당하는 인수 목록을 제공할 때 실행되어야 하는 프로시저 코드를 작성합니다.

  5. 각 프로시저를 상황에 맞게 End Sub 또는 End Function 문으로 종료합니다.

참고 항목

작업

프로시저 문제 해결(Visual Basic)

방법: 여러 버전의 프로시저 정의(Visual Basic)

방법: 오버로드된 프로시저 호출(Visual Basic)

방법: 매개 변수를 무제한으로 사용하는 프로시저 오버로드(Visual Basic)

개념

Visual Basic의 프로시저

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

선택적 매개 변수(Visual Basic)

매개 변수 배열(Visual Basic)

프로시저 오버로딩(Visual Basic)

오버로드 확인(Visual Basic)