다음을 통해 공유


자세히 보기: 재정의를 사용하여 동일 메서드의 여러 버전 만들기

업데이트: 2007년 11월

이 단원에서는 여러 버전의 메서드를 클래스에 추가하는 방법을 배웁니다.

이전 단원에서는 Persons 클래스에 메서드를 추가하는 방법을 살펴보았습니다. 상황에 따라 서로 다른 데이터 형식을 메서드에 전달해야 하거나 서로 다른 형식을 결과로 반환하려는 경우처럼 단일 메서드만으로는 부족한 경우가 있을 수 있습니다.

오버로드 기법을 사용하면 여러 버전의 메서드를 만들 수 있습니다. 클래스에 이름은 같지만 인수 집합이 다른 둘 이상의 메서드가 있을 경우 메서드가 오버로드됩니다.

오버로드

오버로드된 메서드를 만들려면 이름이 같은 둘 이상의 Sub 또는 Function 프로시저를 클래스에 추가합니다. 프로시저 선언에서 각 프로시저의 인수 집합은 달라야 하며, 그렇지 않은 경우 오류가 발생합니다.

다음은 인수로 각각 String과 Integer를 사용하는 두 개의 오버로드가 있는 메서드를 보여 줍니다.

Public Sub TestFunction(ByVal input As String)
    MsgBox(input)
End Sub
Public Sub TestFunction(ByVal input As Integer)
    MsgBox(CStr(input))
End Sub

코드에서 이 메서드를 호출하고 문자열을 전달할 경우 첫 번째 오버로드가 실행되며 메시지 상자에 해당 문자열이 표시됩니다. 숫자를 전달한 경우에는 두 번째 오버로드가 실행되며 숫자가 문자열로 변환된 후 메시지 상자에 표시됩니다.

필요한 만큼 오버로드를 만들 수 있으며 각 오버로드에는 서로 다른 수의 인수가 포함될 수 있습니다.

Persons 클래스에서 이니셜만 반환하는 오버로드와 뒤에 마침표가 붙은 이니셜을 반환하는 오버로드의 두 오버로드가 있는 메서드를 추가하여 특정인의 중간 이니셜을 반환합니다.

실습

오버로드된 메서드를 만들려면

  1. 이전 단원에서 만든 Persons 프로젝트를 엽니다. 프로젝트를 저장하지 않았으면 이전 단원 클래스에 메서드 추가로 돌아가 저장 절차를 완료합니다.

  2. 솔루션 탐색기에서 Persons.vb를 선택한 다음 보기 메뉴에서 코드를 선택합니다.

  3. 기존 메서드 아래에 다음 코드를 추가합니다.

    Public Function MiddleInitial() As String
        MiddleInitial = Left$(middleNameValue, 1)
    End Function
    
    Public Function MiddleInitial(ByVal period As Boolean) As String
        MiddleInitial = Left$(middleNameValue, 1) & "."
    End Function
    
  4. 파일 메뉴에서 모두 저장을 선택하여 작업을 저장합니다.

다음 단계

이 단원에서는 오버로드된 메서드를 만드는 방법을 배웠습니다. 다음 단원에서는 클래스에 이벤트를 추가하는 방법을 배웁니다.

다음 단원: 클래스에 이벤트 추가

참고 항목

작업

클래스에 메서드 추가

개념

프로시저를 오버로드할 때 고려해야 할 사항

기타 리소스

개체를 사용한 프로그래밍: 클래스 사용

Visual Basic 둘러보기