다음을 통해 공유


처음부터 차근차근 따라하기: 인터페이스 만들기 및 구현(Visual Basic)

인터페이스는 속성, 메서드 및 이벤트의 특성을 설명하지만 구현 세부 정보는 구조 또는 클래스에 그대로 둡니다.

이 연습에서는 인터페이스를 선언하고 구현하는 방법을 보여 줍니다.

비고

이 안내에서는 사용자 인터페이스를 만드는 방법에 대한 정보를 제공하지 않습니다.

비고

컴퓨터는 다음 지침에서 Visual Studio 사용자 인터페이스 요소 중 일부에 대해 다른 이름 또는 위치를 표시할 수 있습니다. 가지고 있는 Visual Studio 버전과 사용하는 설정에 따라 이러한 요소가 결정됩니다. 자세한 내용은 IDE 개인 설정참조하세요.

인터페이스를 정의하려면

  1. 새 Visual Basic Windows 애플리케이션 프로젝트를 엽니다.

  2. 프로젝트 메뉴에서 모듈 추가를 클릭하여 프로젝트에 새 모듈을 추가합니다.

  3. 새 모듈 Module1.vb 의 이름을 지정하고 추가를 클릭합니다. 새 모듈의 코드가 표시됩니다.

  4. TestInterface 문과 Module1 문 사이에 Interface TestInterface을(를) 입력한 후 Enter 키를 눌러 Module에서 명명된 End Module 인터페이스를 정의합니다. 코드 편집기Interface 키워드를 들여쓰고 End Interface 문을 추가하여 코드 블록을 형성합니다.

  5. 다음 코드를 InterfaceEnd Interface 구문 사이에 배치하여 인터페이스의 속성, 메서드 및 이벤트를 정의합니다.

    Property Prop1() As Integer
    Sub Method1(ByVal X As Integer)
    Event Event1()
    

이행

인터페이스 멤버를 선언하는 데 사용되는 구문이 클래스 멤버를 선언하는 데 사용되는 구문과 다르다는 것을 알 수 있습니다. 이러한 차이는 인터페이스에 구현 코드를 포함할 수 없다는 사실을 반영합니다.

인터페이스를 구현하려면

  1. 다음 문을 ImplementationClass 후에 추가하고 Module1 문 앞에 추가하여 End Interface라는 이름의 클래스를 만듭니다. 그런 다음 Enter 키를 누릅니다.

    Class ImplementationClass
    

    통합 개발 환경에서 작업하는 경우 Enter 키를 누르면 코드 편집기 에서 일치하는 End Class 문을 제공합니다.

  2. 클래스가 구현하는 Implements인터페이스 이름을 지정하는 다음 ImplementationClass 문을 추가합니다.

    Implements TestInterface
    

    클래스 또는 구조 Implements 체의 맨 위에 있는 다른 항목과 별도로 나열된 경우 이 문은 클래스 또는 구조체가 인터페이스를 구현한다는 것을 나타냅니다.

    통합 개발 환경 내에서 작업하는 경우 코드 편집기 에서는 Enter 키를 누를 때 필요한 클래스 멤버를 TestInterface 구현하고 다음 단계를 건너뛸 수 있습니다.

  3. 통합 개발 환경에서 작업하지 않는 경우 인터페이스 MyInterface의 모든 멤버를 구현해야 합니다. 다음 코드를 ImplementationClass에 추가하여 Event1, Method1, 및 Prop1을 구현하십시오.

    Event Event1() Implements TestInterface.Event1
    
    Public Sub Method1(ByVal X As Integer) Implements TestInterface.Method1
    End Sub
    
    Public Property Prop1() As Integer Implements TestInterface.Prop1
        Get
        End Get
        Set(ByVal value As Integer)
        End Set
    End Property
    

    Implements 문장은 구현되는 인터페이스와 인터페이스 멤버의 이름을 설정합니다.

  4. 속성 값을 저장한 클래스에 프라이빗 필드를 추가하여 정의를 Prop1 완료합니다.

    ' Holds the value of the property.
    Private pval As Integer
    

    속성의 get 접근자에서 pval 값을 반환합니다.

    Return pval
    

    pval 값을 속성 집합 접근자에 설정하십시오.

    pval = value
    
  5. Method1의 정의를 완성하려면 다음 코드를 추가하세요.

    MsgBox("The X parameter for Method1 is " & X)
    RaiseEvent Event1()
    

인터페이스의 구현을 테스트하려면

  1. 솔루션 탐색기에서 프로젝트의 시작 양식을 마우스 오른쪽 단추로 클릭하고 코드 보기를 클릭합니다. 편집기에서 시작 양식에 대한 클래스를 표시합니다. 기본적으로 시작 폼을 호출 Form1합니다.

  2. testInstance 클래스에 다음 Form1 필드를 추가합니다.

    Dim WithEvents testInstance As TestInterface
    

    testInstanceWithEvents로 선언함으로써 Form1 클래스는 해당 이벤트를 처리할 수 있습니다.

  3. Form1 클래스에 다음 이벤트 처리기를 추가하여 testInstance에 의해 발생한 이벤트를 처리합니다.

    Sub EventHandler() Handles testInstance.Event1
        MsgBox("The event handler caught the event.")
    End Sub
    
  4. 클래스 Test에 이름이 Form1인 서브루틴을 추가하여 구현 클래스를 테스트하십시오.

    Sub Test()
        '  Create an instance of the class.
        Dim T As New ImplementationClass
        ' Assign the class instance to the interface.
        ' Calls to the interface members are 
        ' executed through the class instance.
        testInstance = T
        ' Set a property.
        testInstance.Prop1 = 9
        ' Read the property.
        MsgBox("Prop1 was set to " & testInstance.Prop1)
        '  Test the method and raise an event.
        testInstance.Method1(5)
    End Sub
    

    프로시저는 Test 구현하는 클래스의 인스턴스를 MyInterface만들고, 해당 인스턴스를 testInstance 필드에 할당하고, 속성을 설정하고, 인터페이스를 통해 메서드를 실행합니다.

  5. 시작 양식의 Test 프로시저에서 Form1 Load 프로시저를 호출하는 코드를 추가합니다.

    Private Sub Form1_Load(ByVal sender As System.Object,
                           ByVal e As System.EventArgs) Handles MyBase.Load
        Test() ' Test the class.
    End Sub
    
  6. Test F5 키를 눌러 프로시저를 실행합니다. "Prop1이 9로 설정되었습니다"라는 메시지가 표시됩니다. 확인을 클릭하면 "Method1의 X 매개 변수가 5입니다"라는 메시지가 표시됩니다. [확인]을 클릭하면 "이벤트 처리기가 이벤트를 포착했습니다"라는 메시지가 표시됩니다.

참고하십시오