반응형
*델리 게이트(Delegate)
- 대리자 로써 C 언어나 C++ 언어 를 공부한 사람이라면 쉽게 접할 수 있는 함수 포인터와
비슷한 기능을 합니다. 또한 콜백 함수 기능 역할도 수행
*델리 게이트 선언 방법과 간단한 예제
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Delegate
{
public partial class Form1 : Form
{
//델리게이트 선언...
delegate int delegateFuncA(int a, int b);
delegate void delegateFuncB(int a, int b);
delegate string delefageFuncC(int a);
public Form1()
{
InitializeComponent();
}
//함수 선언...
private int FuncA(int a, int b)
{
return a + b;
}
private void FuncB(int a, int b)
{
MessageBox.Show((a + b).ToString());
}
private string FuncC(int a)
{
return (a + 15).ToString();
}
private void button1_Click(object sender, EventArgs e)
{
delegateFuncA dfa = new delegateFuncA(FuncA); //FuncA 에 대한 델리게이트를 만든다.
MessageBox.Show(dfa(5, 6).ToString() + " , Delegate 함수 사용");
}
private void button2_Click(object sender, EventArgs e)
{
delegateFuncB dfa = new delegateFuncB(FuncB); //FuncB 에 대한 델리게이트를 만든다.
}
private void button3_Click(object sender, EventArgs e)
{
delefageFuncC dfa = new delefageFuncC(FuncC); //FuncC 에 대한 델리게이트를 만든다.
MessageBox.Show(dfa(5));
}
}
}
위 코드와 같이 델리 게이트 선언 형식과 함수 형식이 같으며,
(델리게이트 함수 이름은 변수 이름(delegateFuncA,B,C) 사용자 마음대로 지정 가능)
만약 리턴 형식 및 전달 인자 형식이 틀리게 되면 아래의 그림과 같이 오류가 발생 하게 됩니다.
간략히 델리 게이트가 무엇이며, 간단한 예제를 만들어 봤습니다. 다음 시간에는 실제 델리게이트가 어떻게 사용
되는지 알아 보는 시간을 갖도록 하겠습니다~
반응형
'C# Programming' 카테고리의 다른 글
[C#] 인덱서 (Indexer) (0) | 2019.09.14 |
---|---|
[C#] 델리 게이트 (Delegate) - 2 델리게이트 콜백과 사용 그리고 체인 (0) | 2019.09.12 |
[C#] 프로젝트(Project) 내 폼(Form) 목록 리스트(List) 읽기 및 폼(Form) 찾기 (0) | 2019.09.10 |
[C#] Task Class 비동기 스레드 및 병렬 (MSDN) (0) | 2019.09.08 |
[C#] 백그라운드 스레드(BackGround Worker Class) (0) | 2019.09.07 |