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

프로시저에 ParamArray(Visual Basic) 매개 변수가 있으면 매개 변수 배열에 1차원 배열을 사용하는 오버로드된 버전을 정의할 수 없습니다. 자세한 내용은 프로시저를 오버로드할 때 고려해야 할 사항(Visual Basic)의 "ParamArray 매개 변수의 암시적 오버로드"를 참조하십시오.

여러 가지 매개 변수를 사용하는 프로시저를 오버로드하려면

  1. 프로시저와 호출 코드 논리에는 ParamArray 매개 변수보다 오버로드된 버전이 더 유용한 것을 확인합니다. 프로시저를 오버로드할 때 고려해야 할 사항(Visual Basic)의 "오버로드 및 ParamArray"를 참조하십시오.

  2. 제공된 값 중 프로시저에서 매개 변수 목록의 변수 부분에 적용해야 할 숫자를 결정합니다. 값을 적용하지 않거나 단일 1차원 배열을 적용할 수 있습니다.

  3. 제공된 값의 수가 적절한 경우 해당 매개 변수 목록을 정의하는 Sub 또는 Function 선언문을 작성합니다. 이 오버로드된 버전에는 Optional 또는 ParamArray 키워드를 사용하지 마십시오.

  4. 모든 선언에서 Sub 또는 Function 키워드 앞에 Overloads(Visual Basic) 키워드를 지정합니다.

  5. 각각의 선언이 완료되면 호출 코드에서 해당 선언의 매개 변수 목록에 해당하는 값을 제공할 경우 실행할 프로시저 코드를 작성합니다.

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

예제

다음 예제에서는 ParamArray(Visual Basic) 매개 변수를 사용하여 정의한 프로시저를 보여 준 다음 오버로드된 프로시저의 해당 집합을 보여 줍니다.

Sub p(ByVal d As Date, ByVal ParamArray c() As Char)
' The preceding definition is equivalent to the following overloads.
' Overloads Sub p(ByVal d As Date)
' Overloads Sub p(ByVal d As Date, ByVal c() As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char, ByVal c2 As Char)
' And so on, with an additional Char argument in each successive overload.

매개 변수 배열에 1차원 배열을 사용하는 매개 변수 목록으로는 그러한 프로시저를 오버로드할 수 없습니다. 그러나 다른 암시적 오버로드의 시그니처를 사용할 수는 있습니다. 다음은 이에 대한 선언입니다.

' The following overload is not valid because it takes an array for the parameter array.
' Overloads Sub p(ByVal x As Date, ByVal y() As Char)
' The following overload takes a single value for the parameter array and is valid.
Overloads Sub p(ByVal z As Date, ByVal w As Char)

오버로드된 버전의 코드에서는 호출 코드에서 ParamArray 매개 변수에 하나 이상의 값을 제공했는지 여부나 제공했다면 몇 개를 제공했는지를 테스트하지 않아도 됩니다. Visual Basic에서는 호출 인수 목록과 일치하는 버전으로 제어가 전달됩니다.

코드 컴파일

ParamArray 매개 변수를 사용하는 프로시저는 오버로드된 버전 집합과 동일하므로, 이러한 암시적 오버로드에 해당하는 매개 변수 목록으로는 그러한 프로시저를 오버로드할 수 없습니다. 자세한 내용은 프로시저를 오버로드할 때 고려해야 할 사항(Visual Basic)을 참조하십시오.

보안

무제한으로 커질 수 있는 배열을 처리할 때마다 응용 프로그램의 내부 용량에 오버런이 발생할 위험이 있습니다. 매개 변수 배열을 받는 경우에는 호출 코드로부터 받은 배열의 길이를 테스트해야 합니다. 이때 길이가 너무 길어서 해당 배열을 응용 프로그램에 사용할 수 없는 경우에는 적절한 조치를 취합니다.

참고 항목

작업

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

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

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

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

개념

Visual Basic의 프로시저

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

선택적 매개 변수(Visual Basic)

매개 변수 배열(Visual Basic)

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

오버로드 확인(Visual Basic)