delegate格式(代理或委托)

1 class SomeClass//被委托的类
2 {
3    public delegate string ftxDelegate(string s);//注意delegate要小写,这才是关键字,另外public这里注意访问性一致问题
4 }

1 class SomeClass2
2 {
3   public ftxDelegate ftx;//这是委托的变量
4 }

用法
1     
      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 }

posted @   怒杀神  阅读(235)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示