다음을 통해 공유


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

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

하나의 선택적 매개 변수

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

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

  2. Sub 또는 Function 키워드 앞에 Overloads 키워드가 있습니다.

  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)
    

여러 선택적 매개 변수

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

선택적 매개 변수의 수가 증가함에 따라 오버로드의 복잡성도 증가합니다. 제공된 인수의 일부 조합이 허용되지 않는 한 N개의 선택적 매개 변수에 2 ^ N개의 오버로드된 버전이 필요합니다. 프로시저의 특성에 따라 논리의 명확성이 모든 오버로드된 버전을 정의하는 추가 작업을 정당화한다는 것을 알 수 있습니다.

두 개 이상의 선택적 매개 변수를 사용하는 프로시저를 오버로드하려면

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

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

  3. 각 선언에서 Overloads 키워드를 Sub 키워드 또는 Function 키워드 앞에 붙입니다.

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

  5. End Sub 또는 End Function 문을 적절하게 사용하여 각 프로시저를 종료합니다.

참고 항목