수색…


절차 소개

Sub 는 특정 작업을 수행하지만 특정 값을 반환하지 않는 프로 시저입니다.

Sub ProcedureName ([argument_list])
    [statements]
End Sub

액세스 한정자가 지정되지 않은 경우 프로 시저는 기본적으로 Public 입니다.

Function 는 데이터가 주어지고 전역 또는 모듈 범위 부작용없이 이상적으로 값을 반환하는 프로 시저입니다.

Function ProcedureName ([argument_list]) [As ReturnType]
    [statements]
End Function

Property 은 모듈 데이터를 캡슐화 하는 프로 시저입니다. 속성은 최대 3 개 접근을 할 수 있습니다 : Get , 값 또는 객체 참조를 돌려 Let 값을 지정, 및 / 또는 Set 개체 참조를 할당.

Property Get|Let|Set PropertyName([argument_list]) [As ReturnType]
    [statements]
End Property

속성은 일반적으로 클래스 모듈에서 사용되지만 (표준 모듈에서도 허용되지만) 호출 코드에서 액세스 할 수없는 데이터에 접근자를 표시합니다. Get 접근 자만 노출하는 속성은 "읽기 전용"입니다. Let 및 / 또는 Set 접근 자만 노출하는 속성은 "쓰기 전용"입니다. 쓰기 전용 속성은 좋은 프로그래밍 방법으로 간주되지 않습니다. 클라이언트 코드가 값을 수 있으면 다시 읽을 수 있어야합니다. 쓰기 전용 속성을 만드는 대신 Sub 프로 시저를 구현하는 것이 좋습니다.

값을 반환하는 중

Function 또는 Property Get 프로시 저는 호출자에게 값을 반환 할 수 있습니다. 이것은 프로 시저의 식별자를 할당하여 수행됩니다.

Property Get Foo() As Integer
    Foo = 42
End Property

예제를 사용한 함수

위에서 언급 한 바와 같이 함수는 프로 시저 내에서 반복적 일 수있는 작은 코드 조각을 포함하는 더 작은 프로 시저입니다.

함수는 코드의 중복을 줄이기 위해 사용됩니다.

프로시 듀어와 마 y 가지로, 함수는 인수 목록을 g 용하거나 g 용하지 않고 선언 할 수 있습니다.

함수는 모든 함수가 값을 반환하므로 반환 유형으로 선언됩니다. 함수의 이름과 반환 변수는 같습니다.

  1. 매개 변수가있는 기능 :

     Function check_even(i as integer) as boolean
     if (i mod  2) = 0 then
     check_even = True
     else
     check_even=False
     end if
     end Function
    
  2. 매개 변수없는 기능 :

     Function greet() as String
     greet= "Hello Coder!"
     end Function
    

함수는 함수 내에서 다양한 방법으로 호출 될 수 있습니다. 반환 유형으로 선언 된 함수는 기본적으로 변수입니다. 변수와 비슷하게 사용됩니다.

기능 통화 :

    call greet() 'Similar to a Procedural call just allows the Procedure to use the
                 'variable greet 
    string_1=greet() 'The Return value of the function is used for variable
                     'assignment

또한이 함수는 if 및 기타 조건문에 대한 조건으로 사용될 수도 있습니다.

      for i = 1 to 10
      if check_even(i) then
      msgbox i & " is Even"
      else
      msgbox i & " is Odd"
      end if
      next i

더 많은 함수는 인수에 대해 By ref 및 By val과 같은 수정자를 가질 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow