Module 문
모듈 이름을 선언하고 모듈에 포함되는 변수, 속성, 이벤트 및 프로시저의 정의를 소개합니다.
[ <attributelist> ] [ accessmodifier ] Module name
[ statements ]
End Module
요소
attributelist
선택적 요소.자세한 내용은 특성 목록(Visual Basic)를 참조하십시오.accessmodifier
선택적 요소.다음 중 하나일 수 있습니다.자세한 내용은 Visual Basic의 액세스 수준를 참조하십시오.
name
필수 요소.이 모듈의 이름입니다.선언된 요소 이름(Visual Basic)를 참조하십시오.statements
선택적 요소.이 모듈의 변수, 속성, 이벤트, 프로시저 및 중첩 형식을 정의하는 문입니다.End Module
Module 정의를 끝냅니다.
설명
Module 문은 해당 네임스페이스에서 사용 가능한 참조 형식을 정의합니다.표준 모듈이라고도 하는 모듈 은 클래스와 유사하지만 몇 가지 중요한 차이가 있습니다.모든 모듈은 인스턴스가 하나이며 변수에 모듈을 만들거나 할당할 필요가 없습니다.모듈은 상속 또는 구현 인터페이스를 지원하지 않습니다.모듈은 클래스 또는 구조체와 같은 의미의 형식이 아니므로 프로그래밍 요소가 모듈의 데이터 형식을 갖도록 선언할 수 없습니다.
Module은 네임스페이스 수준에서만 사용할 수 있습니다.즉, 모듈에 대한 선언 컨텍스트는 소스 파일 또는 네임스페이스이어야 하며 클래스, 구조체, 모듈, 인터페이스, 프로시저 또는 블록일 수 없습니다.다른 모듈 또는 다른 형식 내에서 모듈을 중첩할 수 없습니다.자세한 내용은 선언 컨텍스트 및 기본 액세스 수준(Visual Basic)을 참조하십시오.
모듈은 사용자의 프로그램과 수명이 동일합니다.모듈의 멤버는 모두 Shared이므로 이들 또한 해당 프로그램과 수명이 동일합니다.
모듈은 기본적으로 Friend(Visual Basic) 액세스입니다.액세스 한정자를 사용하여 액세스 수준을 조정할 수 있습니다.자세한 내용은 Visual Basic의 액세스 수준을 참조하십시오.
모듈의 모든 멤버는 암시적 Shared입니다.
클래스 및 모듈
이 두 요소는 매우 유사하지만 몇 가지 중요한 면에서 서로 다릅니다.
용어. 이전 버전의 Visual Basic에서는 두 가지 모듈 형식인 클래스 모듈(.cls 파일)과 표준 모듈(.bas 파일)을 인식합니다.현재 버전에서는 이러한 클래스와 모듈을 각각 호출합니다.
공유 멤버. 클래스 멤버가 공유 멤버인지 또는 인스턴스 멤버인지 제어할 수 있습니다.
개체 지향. 클래스는 개체 지향적이지만 모듈은 그렇지 않습니다.따라서 클래스만 개체로 인스턴스화될 수 있습니다.자세한 내용은 Visual Basic의 개체 및 클래스를 참조하십시오.
규칙
한정자. 모든 모듈 멤버는 암시적 Shared(Visual Basic)입니다.멤버를 선언할 때 Shared 키워드를 사용할 수 없으며 멤버의 공유 상태를 변경할 수 없습니다.
상속. 모듈은 모든 모듈이 상속되는 Object 이외의 다른 형식에는 상속될 수 없습니다.특히 하나의 모듈은 다른 모듈에서 상속할 수 없습니다.
Object를 지정하려는 경우에도 모듈 정의에 Inherits 문을 사용할 수 없습니다.
기본 속성. 모듈에서 기본 속성을 정의할 수 없습니다.자세한 내용은 Default(Visual Basic)을 참조하십시오.
동작
액세스 수준. 모듈 내에서는 각 멤버만의 액세스 수준으로 각 멤버를 선언할 수 있습니다.모듈 멤버는 변수 및 상수를 제외하고 기본적으로 Public(Visual Basic) 액세스이며 변수 및 상수는 기본적으로 Private(Visual Basic) 액세스입니다.모듈에 모듈 멤버의 액세스보다 더 제한된 액세스가 있는 경우 지정된 모듈 액세스 수준이 사용됩니다.
범위. 모듈은 해당 네임스페이스의 범위 내에 있습니다.
모든 모듈 멤버의 범위는 전체 모듈입니다.모든 멤버는 형식 승격을 거치게 됩니다. 그러면 멤버의 범위가 모듈을 포함하는 네임스페이스로 확장됩니다.자세한 내용은 형식 승격(Visual Basic)를 참조하십시오.
한정자. 한 프로젝트에 여러 모듈을 사용할 수 있으며 둘 이상의 모듈에서 같은 이름으로 멤버를 선언할 수 있습니다.그러나 참조가 해당 모듈 외부의 것인 경우 적절한 모듈 이름으로 이러한 멤버에 대한 모든 참조를 한정해야 합니다.자세한 내용은 선언된 요소 참조(Visual Basic)을 참조하십시오.
예제
Public Module thisModule
Sub Main()
Dim userName As String = InputBox("What is your name?")
MsgBox("User name is" & userName)
End Sub
' Insert variable, property, procedure, and event declarations.
End Module