1 class SomeClass//被委托的类
2 {
3 public delegate string ftxDelegate(string s);//注意delegate要小写,这才是关键字,另外public这里注意访问性一致问题
4 }
2 {
3 public delegate string ftxDelegate(string s);//注意delegate要小写,这才是关键字,另外public这里注意访问性一致问题
4 }
1 class SomeClass2
2 {
3 public ftxDelegate ftx;//这是委托的变量
4 }
2 {
3 public ftxDelegate ftx;//这是委托的变量
4 }
用法
1
SomeClass2.ftx=new ftxDelegate(...);//...用目标函数替代,不要有()号
2 String resultStr= SomeClass2.ftx(someStr);
3
SomeClass2.ftx=new ftxDelegate(...);//...用目标函数替代,不要有()号
2 String resultStr= SomeClass2.ftx(someStr);
3
举例:大小写转换
1 public class Capital
2 {
3 public string fixText(string s)
4 {return s.ToUpper();}
5 }
6
7 public class Lower
8 {
9 public static string fixText(string s)
10 { return s.ToLower(); }
11 }
12
13 //窗体中
14 private void opCap_checkedChanged(object sender,EventArgs e)
15 {
16 btProcess.Enabled=true;
17 ftx=new ftxDelegate(new Capital().fixText);//不要有()
18 //这个是实例
19 }
20
21 private void opLower_checkedChanged(object sender,EventArgs e)
22 {
23 btProcess.Enabled=true;
24 ftx=new ftxDelegate(Lower.fixText);//不要()
25 //这个是静态方法
26 }
27
28
29 private void btProcess_Click(object Sender, EventArgs e)
30 {
31 string s=ftx(txName.Text);
32
33 }
2 {
3 public string fixText(string s)
4 {return s.ToUpper();}
5 }
6
7 public class Lower
8 {
9 public static string fixText(string s)
10 { return s.ToLower(); }
11 }
12
13 //窗体中
14 private void opCap_checkedChanged(object sender,EventArgs e)
15 {
16 btProcess.Enabled=true;
17 ftx=new ftxDelegate(new Capital().fixText);//不要有()
18 //这个是实例
19 }
20
21 private void opLower_checkedChanged(object sender,EventArgs e)
22 {
23 btProcess.Enabled=true;
24 ftx=new ftxDelegate(Lower.fixText);//不要()
25 //这个是静态方法
26 }
27
28
29 private void btProcess_Click(object Sender, EventArgs e)
30 {
31 string s=ftx(txName.Text);
32
33 }