VB.NET 2008/VB - 문법

문법 - 프로시저(procedure)

본클라쓰 2011. 4. 4. 20:17

프로시저(procedure)는 선언문(Function, Sub, Operator, Get,Set)과 짝이 되는 End 선언 사이에 포함된 Visual Basic 문 블록이다. Visual Basic의 모든 실행문은 프로시저 내부에 있어야 한다. 프로시저는 일종의 함수로 독립적인 코드 블록으로 한 가지 작업을 수행하는데 필요한 코드가 포함되어 있다. 프로시저에는 함수(Function)과 서브루틴(Sub) 등이 있다.

 

 

프로시저는 코드의 다른 위치에서 호출된다. 이를 프로시저 호출이라고 한다. 프로시저는 실행을 마치면 자신을 호출 코드로 제어를 반환한다. 호출 코드는 문 또는 문 내의 식이며, 프로시저 이름을 지정하여 제어를 전달한다.

 

 

프로시저는 실행을 마치면 호출 코드로 제어를 반환한다. 그러면 제어가 프로시저 호출 점을 따라 호출 코드로 전달된다.

 

Return 문을 사용하면 제어가 호출 코드로 즉시 반환된다. Return 문 뒤에 오는 문은 실행되지 않느다. 같은 프로시저 내에서 Reture 문을 두 개 이상 사용할 수 있다.

 

Exit Sub 또는 Exit Function 문을 사용하면 제어가 호출 코드로 즉시 반환된다. Exit 뒤에 오는 문은 실행되지 않는다. 같은 프로시저 내에서 Exit 문을 두 개 이상 사용할 수 있으며 Return 문과 Exit 문을 함께 사용할 수 있다.

 

프로시저에 Return 또는 Exit 문이 없는 경우 프로시저는 프로시저 본문의 마지막 문 뒤에 오는 End Sub 또는 End Function, End Get 또는 End Set 문으로 끝난다. End 문은 제어를 호출 코드로 즉시 반환한다. 단일 프로시저에서 End 문은 하나만 사용할 수 있다.

 

 

대부분의 경우 프로시저는 호출될 때마다 다른 데이터에서 작업을 수행해야 한다. 이 정보를 프로시저에 프로시저 호출의 일부로 전달할 수 있다. 프로시저는 0개 이상의 매개 변수를 정의하며 각 매개 변수는 전달되어야 하는 값을 나타낸다. 프로시저 정의의 각 매개 변수는 프로시저 호출의 인수에 해당한다. 인수는 지정한 프로시저 호출의 해당 매개 변수에 전달하는 값을 나타낸다.

 

 

Visual Basic에서는 다음과 같은 여러 유형의 프로시저를 사용한다.

 

- Sub 프로시저 : 동작만 수행하고 호출 코드에 값을 반환하지는 않는다.

- Function 프로시저 : 호출 코드에 값을 반환할 뿐만 아니라 값을 반환하기 전에 다른 작업을 수행할 수 있다.

- Property 프로시저 : 개체나 모듈의 속성 값을 반환하고 할당한다.

- 연산자 프로시저 : 피연산자 하나 또는 둘 다가 새로 정의된 클래스 또는 구조체인 경우 표준 연산자의 동작을 정의

- 제네릭 프로시저 : 일반 매개 변수 외에도 하나 이상의 형식 매개 변수를 정의하므로 호출 코드는 호출할 때마다 특정 데이터 형식을 전달할 수 있다.

 

 

 

 

Sub 프로시저

 

Sub 프로시저는 Sub 문과 End Sub 문 사이에 포함된 일련의 Visual Basic 문이다. Sub 프로시저는 작업을 수행한 다음 호출 코드로 제어를 반환하지만 호출 코드에 값을 반환하지는 않는다.

 

프로시저가 호출될 때마다 Sub 문 다음의 첫 실행 문에서 시작하여 End Sub, Exit Sub 또는 Return 문이 처음 나타날 때까지 해당 문이 실행된다.

 

Sub 프로시저는 모듈, 클래스 및 구조체에서 정의할 수 있다. 이 프로시저는 기본적으로 Public이므로 프로시저를 정의한 해당 모듈, 클래스 또는 구조체에 액세스 할 수 있는 응용 프로그램의 모든 위치에서 호출할 수 있다. 메서드라는 용어는 정의하는 모듈, 클래스 또는 구조체 외부에서 액세스되는 Sub 또는 Function 프로시저를 나타낸다.

 

Sub 프로시저는 호출 코드를 통해 전달되는 상수, 변수, 식 등의 인수를 사용할 수 있다.

 

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

 

[modifiers] Sub subname [(parameterlist)]

    ' Statements of the Sub procedure

End Sub

 

 

 

Function 프로시저

 

Function 프로시저는 Function 문과 End Function 문 사이에 포함된 일련의 Visual Basic 문이다. Function 프로시저는 작업을 수행한 다음 호출 코드에 제어를 반환한다. 제어를 반환할 때 값도 함께 반환한다.

 

프로시저가 호출될 때마다 Function 문 다음의 첫 실행 문에서 시작하여 첫 번째 End Function, Exit Function 또는 Return 문이 나타날 때까지 프로시저 문이 실행된다.

 

모듈, 클래스 또는 구조체에서 Function 프로시저를 정의할 수 있다. 프로시저는 기본적으로 Public이다. 즉, 프로시저가 정의된 모듈, 클래스 또는 구조체에 액세스할 수 있는 응용 프로그램의 어느 곳에서나 해당 프로시저를 호출할 수 있다.

 

Function 프로시저는 호출 코드에 의해 자신에서 전달되는 상수, 변수, 식 등의 인수를 포함할 수 있다.

 

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

 

[modifiers] Function functionname [(parameterlist)] As returntype

    ' Statements of the function procedure.

End Function

 

 

 

Property 프로시저

 

속성 프로시저는 모듈, 클래스 또는 구조체에서 사용자 지정 속성을 조작하는 일련의 Visual basic 문이다. 속성 프로시저를 속성 접근자라고도 한다.

 

Visual Basic에는 다음과 같은 속성 프로시저가 있다.

 

- Get 프로시저는 속성 값을 반환한다. 식에서 속성에 액세스할 때 호출된다.

- Set 프로시저는 개체 참조를 포함하여 속성 값을 설정한다. 속성에 값을 할당할 때 호출된다.

 

일반적으로 Get 문과 Set 문을 사용하여 속성 프로시저를 쌍으로 정의할 수 있지만, 속성이 읽기 전용이거나 쓰기 전용일 경우 두 프로시저 중 하나만 정의할 수 있다.

 

클래스, 구조체 및 모듈에서 속성을 정의할 수 있다. 속성은 기본적으로 public 이다. 즉, 속성 컨테이너에 액세스할 수 있는 응용 프로그램의 어느 곳에서나 이 컨테이너에 포함된 속성을 호출할 수 있다.

 

속성 자체는 Property 문과 End Property 문 사이에 포함된 코드 블록으로 정의된다. 이 블록 안에서 각 속성 프로시저는 선언문(Get 또는 Set)과 짝이 되는 End 선언 사이에 포함된 내부 블록으로 나타난다.

 

속성 및 해당 프로시저를 선언하는 구문은 다음과 같다.

 

[Default] [modifiers] Property propertyname [(parameterlist)] As datatype

 

    [accesslevel] Get

        ' Statements of the Get procedure.

        ' The following statements returns expression as the property's value.

        Return expression

    End Get

 

    [accesslevel] Set

        ' Statements of the Set procedure

        ' The following statements assigns new value as the property's value.

        IValue = newvalue

    End Set

 

End Property

 


 

참조) http://msdn.microsoft.com/ko-kr/library/74dh43ez.aspx

'VB.NET 2008 > VB - 문법' 카테고리의 다른 글

문법 - 루프구조  (0) 2011.04.04
문법 - 판단구조  (0) 2011.04.04
문법 - 배열  (0) 2011.04.04
문법 - 기본 문법(변수, 상수, 연산자)  (0) 2011.04.04
문법 - 문법 구문에 제한을 두는 선언문  (0) 2011.04.04