Function 프로시저(Visual Basic)

Function 프로시저는 FunctionEnd Function 문으로 묶인 일련의 Visual Basic 문입니다. Function 프로시저는 작업을 수행한 다음 호출 코드에 제어를 반환합니다. 제어를 반환할 때 호출 코드에도 값을 반환합니다.

프로시저가 호출될 때마다 해당 문은 Function 문 다음의 첫 번째 실행 가능 문부터 시작하여 처음 발견된 End Function, Exit Function 또는 Return 문으로 끝납니다.

모듈, 클래스 또는 구조에서 Function 프로시저를 정의할 수 있습니다. 기본적으로는 Public입니다. 이는 정의한 모듈, 클래스 또는 구조에 액세스할 수 있는 애플리케이션의 어느 곳에서나 이를 호출할 수 있음을 의미합니다.

Function 프로시저는 호출 코드에 의해 전달되는 상수, 변수 또는 식과 같은 인수를 사용할 수 있습니다.

선언 구문

Function 프로시저를 선언하는 구문은 다음과 같습니다.

[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
    [Statements]
End Function

한정자는 오버로드, 재정의, 공유 및 섀도잉에 관한 액세스 수준과 정보를 지정할 수 있습니다. 자세한 내용은 함수 문을 참조하세요.

하위 프로시저와 동일한 방식으로 각 매개 변수를 선언합니다.

데이터 형식

모든 Function 프로시저에는 모든 변수와 마찬가지로 데이터 형식이 있습니다. 이 데이터 형식은 Function 문의 As 절에 의해 지정되며 함수가 호출 코드에 반환하는 값의 데이터 형식을 결정합니다. 다음 샘플 선언은 이를 보여 줍니다.

Function Yesterday() As Date
End Function

Function FindSqrt(radicand As Single) As Single
End Function

자세한 내용은 함수 문의 "파트"를 참조하세요.

값 반환

Function 프로시저가 호출 코드로 다시 보내는 값을 반환 값이라고 합니다. 프로시저는 다음 두 가지 방법 중 하나로 이 값을 반환합니다.

  • Return 문을 사용하여 반환 값을 지정하고 호출 프로그램에 즉시 제어를 반환합니다. 다음 예제에서는 이것을 보여 줍니다.

    Function FunctionName [(ParameterList)] As ReturnType
        ' The following statement immediately transfers control back
        ' to the calling code and returns the value of Expression.
        Return Expression
    End Function
    
  • 하나 이상의 프로시저 문에서 자체 함수 이름에 값을 할당합니다. Exit Function 또는 End Function 문이 실행될 때까지 제어는 호출 프로그램으로 반환되지 않습니다. 다음 예제에서는 이것을 보여 줍니다.

    Function FunctionName [(ParameterList)] As ReturnType
        ' The following statement does not transfer control back to the calling code.
        FunctionName = Expression
        ' When control returns to the calling code, Expression is the return value.
    End Function
    

함수 이름에 반환 값을 할당하면 제어가 Exit Function 또는 End Function 문을 만날 때까지 프로시저에서 반환되지 않는다는 이점이 있습니다. 이를 통해 예비 값을 할당하고 필요한 경우 나중에 조정할 수 있습니다.

값 반환에 대한 자세한 내용은 함수 문을 참조하세요. 배열 반환에 대한 자세한 내용은 배열을 참조하세요.

호출 구문

대입문 오른쪽이나 식에 해당 이름과 인수를 포함하여 Function 프로시저를 호출합니다. 선택 사항이 아닌 모든 인수에 대해 값을 제공해야 하며 인수 목록을 괄호로 묶어야 합니다. 인수가 제공되지 않으면 선택적으로 괄호를 생략할 수 있습니다.

Function 프로시저 호출 구문은 다음과 같습니다.

lvalue=함수 이름[(인수 목록)]

If ((함수 이름[(인수 목록)] / 3) <=) Then

Function 프로시저를 호출할 때 해당 반환 값을 사용할 필요가 없습니다. 그렇지 않으면 함수의 모든 작업이 수행되지만 반환 값은 무시됩니다. MsgBox는 종종 이런 방식으로 호출됩니다.

선언 및 호출의 그림

다음 Function 프로시저는 다른 두 변의 값을 바탕으로 직각삼각형의 가장 긴 변, 즉 빗변을 계산합니다.

Function Hypotenuse(side1 As Double, side2 As Double) As Double
    Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function

다음 예에서는 hypotenuse에 대한 일반적인 호출을 보여 줍니다.

Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)

참고 항목