다음을 통해 공유


사용자 지정 컨트롤에서 메서드 구현

다른 모든 구성 요소에서 메서드를 구현하는 것과 같은 방식으로 컨트롤에서 메서드를 구현할 수 있습니다.

Visual Basic에서는 메서드가 값을 반환해야 하는 경우 Public Function으로 구현됩니다. 값을 반환하지 않는 경우에는 Public Sub으로 구현됩니다. 메서드를 선언하는 구문은 다음과 같습니다.

Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
   ' Conversion code goes here.
End Function

함수는 값을 반환하기 때문에 integer, string, object와 같은 반환 형식을 지정해야 합니다. Function 또는 Sub 프로시저에서 인수를 받는 경우도 인수 형식을 지정해야 합니다.

C#은 Visual Basic처럼 함수와 프로시저를 구분하지 않습니다. 메서드는 값을 반환하거나 void를 반환합니다. 다음은 C# 공용 메서드 선언 구문입니다.

public int ConvertMatterToEnergy(int matter)
{
   // Conversion code goes here.
}

메서드를 선언할 때 가능하면 해당 메서드의 모든 인수를 명시적 데이터 형식으로 선언합니다. 개체 참조를 사용하는 인수는 특정 클래스 형식으로 선언되어야 합니다. 예를 들어, As Object 대신 As Widget으로 선언되어야 합니다. Visual Basic의 기본 설정인 Option Strict는 이 규칙을 자동으로 적용합니다.

형식이 지정된 인수를 사용하면 많은 개발자 오류를 런타임이 아닌 컴파일러에서 찾아 낼 수 있습니다. 컴파일러는 항상 오류를 찾아 내는 반면 런타임 테스트는 테스트의 모음에 불과합니다.

오버로드된 메서드

컨트롤 사용자가 메서드에 다양한 매개 변수 조합을 사용할 수 있게 하려면 명시적 데이터 형식을 사용하여 메서드의 다중 오버로드를 제공해야 합니다. 매개 변수를 만들 때 임의의 데이터 형식을 포함할 수 있는 As Object로 선언하지 마십시오. 이러한 매개 변수는 테스트 과정에서 찾아내기 힘든 오류를 발생시킬 수 있습니다.

Visual Basic 정보Visual Basic 정보

공용 언어 런타임의 유니버설 데이터 형식은 Variant가 아니라 Object입니다. Variant는 해당 언어에서 제거되었습니다. 자세한 내용은 다음을 참조하십시오. Visual Basic 6.0 사용자를 위한 유니버설 데이터 형식 변경 사항Visual Basic 6.0 사용자를 위한 유니버설 데이터 형식 변경 사항.

예를 들어, 가상 Widget 컨트롤의 Spin 메서드에 다음과 같이 회전 방향 및 속도를 직접 지정하거나 각 운동량을 처리할 다른 Widget 개체를 지정할 수 있습니다.

Overloads Public Sub Spin( _
   ByVal SpinDirection As SpinDirectionsEnum, _
   ByVal RevolutionsPerSecond As Double)
   ' Implementation code here.
End Sub
Overloads Public Sub Spin(ByVal Driver As Widget) _
   ' Implementation code here.
End Sub
public void Spin(SpinDirectionsEnum spinDirection, double revolutionsPerSecond)
{
   // Implementation code here.
}

public void Spin(Widget driver)
{
   // Implementation code here.
}

참고 항목

개념

이벤트 및 대리자

기타 리소스

Windows Forms 컨트롤의 속성