다음을 통해 공유


방법: 프로시저의 매개 변수 정의(Visual Basic)

매개 변수를 사용하면 호출 코드가 호출 시 프로시저에 값을 전달할 수 있습니다. 변수를 선언하는 것과 동일한 방법으로 프로시저의 각 매개 변수를 선언하고 해당 이름과 데이터 형식을 지정합니다. 전달 메커니즘과 매개 변수가 선택 사항인지 여부도 지정합니다.

자세한 내용은 프로시저 매개 변수 및 인수를 참조하세요.

프로시저 매개 변수를 정의하려면

  1. 프로시저 선언에서 매개 변수 이름을 프로시저의 매개 변수 목록에 추가하고 이를 다른 매개 변수와 쉼표로 구분합니다.

  2. 매개 변수의 데이터 형식을 결정합니다.

  3. 데이터 형식을 지정하려면 매개 변수 이름 뒤에 As 절을 사용합니다.

  4. 매개 변수에 대해 원하는 전달 메커니즘을 결정합니다. 프로시저가 호출 코드에서 해당 값을 변경할 수 있기를 원하지 않는 한 일반적으로 매개 변수를 값으로 전달합니다.

  5. 전달 메커니즘을 지정하려면 매개 변수 이름 앞에 ByVal 또는 ByRef를 붙입니다. 자세한 내용은 값별 인수 전달과 참조별 인수 전달의 차이점을 참조하세요.

  6. 매개 변수가 선택 사항인 경우 전달 메커니즘 앞에 선택 사항을 붙이고 매개 변수 데이터 형식 뒤에 등호(=)와 기본값을 붙입니다.

    다음 예에서는 세 개의 매개 변수를 사용하여 Sub 프로시저의 개요를 정의합니다. 처음 두 개는 필수이고 세 번째는 선택 사항입니다. 매개 변수 선언은 매개 변수 목록에서 쉼표로 구분됩니다.

    Sub updateCustomer(ByRef c As customer, ByVal region As String, 
      Optional ByVal level As Integer = 0)
      ' Insert code to update a customer object.
    End Sub
    

    첫 번째 매개 변수는 customer 개체를 허용하고 인수가 ByRef로 전달되므로 updateCustomerc에 전달된 변수를 직접 업데이트할 수 있습니다. 마지막 두 인수는 ByVal로 전달되므로 프로시저에서는 마지막 두 인수의 값을 변경할 수 없습니다.

    호출 코드가 level 매개 변수의 값을 제공하지 않으면 Visual Basic은 이를 기본값인 0으로 설정합니다.

    형식 검사 스위치(Option Strict 문)가 Off인 경우 매개 변수를 정의할 때 As 절은 선택 사항입니다. 그러나 하나의 매개 변수가 As 절을 사용하는 경우 모두 해당 절을 사용해야 합니다. 형식 검사 스위치가 On인 경우 모든 매개 변수 정의에 As 절이 필요합니다.

    모든 프로그래밍 요소에 대한 데이터 형식을 지정하는 것을 강력한 입력이라고 합니다. Option Strict On을 설정하면 Visual Basic에서 강력한 입력을 적용합니다. 이는 다음과 같은 이유로 강력히 권장됩니다.

    • 변수 및 매개 변수에 대한 IntelliSense 지원을 사용하도록 설정합니다. 이를 통해 코드를 입력할 때 해당 속성과 기타 멤버를 볼 수 있습니다.

    • 이를 통해 컴파일러는 형식 검사를 수행할 수 있습니다. 이는 오버플로와 같은 오류로 인해 런타임에 실패할 수 있는 문을 잡는 데 도움이 됩니다. 또한 메서드를 지원하지 않는 개체에 대한 메서드 호출도 catch합니다.

    • 결과적으로 코드 실행 속도가 빨라집니다. 그 이유 중 하나는 프로그래밍 요소에 대한 데이터 형식을 할당하지 않으면 Visual Basic 컴파일러가 해당 요소에 Object 형식을 할당하기 때문입니다. 컴파일된 코드는 Object와 다른 데이터 형식 간에 앞뒤로 변환해야 할 수 있으며 이로 인해 성능이 저하됩니다.

참고 항목