delegate (위임) 사용법
C# 2007. 10. 19. 13:49 |Delegate 사용법
C#은 C언어에는 없는 위임이라는 독특한 특징을 도입했다. 기본적으로 위임이란, 같은 인터페이스를 만족시키는 한, 어느 클래스로부터 홨는지알지 못하더라도 넘겨주고 사용할 수 있는 다른 클래스에 있는 함수의 참조이다.
심플 예제
대문자 또는 소문자를 자동으로 만들어 주는 기능을 한다.
이때 Capital, Lower를 체크 해주게 되는데
내부적인 코드는 아래와 같다.
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
private delegate string fTxDelegate(string s);
fTxDelegate ftx;
public Form1()
{
InitializeComponent();
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
button1.Enabled = true;
ftx = new fTxDelegate(new Capital().fixText);
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
button1.Enabled = true;
ftx = new fTxDelegate(new Lower().fixText);
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add(ftx(textBox1.Text));
}
}
public class Capital
{
public string fixText(string s) {
return s.ToUpper();
}
}
public class Lower
{
public string fixText(string s) {
return s.ToLower();
}
}
}
fix 메서드는 어떤 fixText를 호출할지를 자동으로 결정해 준다.