반응형
*델리 게이트(Delegate)
- 대리자 로써 C 언어나 C++ 언어 를 공부한 사람이라면 쉽게 접할 수 있는 함수 포인터와
비슷한 기능을 합니다. 또한 콜백 함수 기능 역할도 수행
*델리 게이트 선언 방법과 간단한 예제
Public Class Form1
'델리 게이트 선언...
Delegate Function delegateFuncA(ByVal a As Integer, ByVal b As Integer) As Integer
Delegate Sub delegateFuncB(ByVal a As Integer, ByVal b As Integer)
Delegate Function delegateFuncC(ByVal a As Integer) As String
'폼 버튼 이벤트...
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'FuncA 함수에 대한 델리게이트 초기화
Dim dfa As delegateFuncA = New delegateFuncA(AddressOf FuncA)
MessageBox.Show(dfa(5, 6).ToString() + " , Delegate 함수 사용")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'FuncB 함수에 대한 델리게이트 초기화
Dim dfa As delegateFuncB = New delegateFuncB(AddressOf FuncB)
dfa(5, 6)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'FuncC 함수에 대한 델리게이트 초기화
Dim dfa As delegateFuncC = New delegateFuncC(AddressOf FuncC)
MessageBox.Show(dfa(5))
End Sub
'폼 내부 함수들...
Private Function FuncA(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
Private Sub FuncB(ByVal a As Integer, ByVal b As Integer)
MessageBox.Show((a + b).ToString())
End Sub
Private Function FuncC(ByVal a As Integer) As String
Return (a + 15).ToString()
End Function
End Class
위 코드와 같이 델리 게이트 선언 형식과 함수 형식이 같으며,
(델리게이트 함수 이름은 변수 이름(delegateFuncA,B,C) 사용자 마음대로 지정 가능)
만약 리턴 형식 및 전달 인자 형식이 틀리게 되면 아래의 그림과 같이 오류가 발생 하게 됩니다.
간략히 델리 게이트가 무엇이며, 간단한 예제를 만들어 봤습니다.
반응형
'VB.NET Programming' 카테고리의 다른 글
[VBNET] BackGround Worker 를 이용 백그라운드 스레드 (0) | 2019.09.17 |
---|---|
[VBNET] 크로스 스레드 (Cross Thread) 예제 (0) | 2019.09.16 |
[VBNET] 프로젝트(Project) 내 폼(Form) 목록 리스트(List) 읽기 및 폼(Form) 찾기 (0) | 2019.09.09 |
[VBNET] 컨트롤 배열처럼 사용 하기(Controls Arrary) (0) | 2019.09.03 |
[VBNET] 시간 체크 함수 (Time Check Func) (0) | 2019.09.02 |