委托的实际应用

1.窗体传值

  public class DelegateHelper
    {
        public static DL_ChangeValue changeDelegate;
    }
View Code

窗体一代码:

//委托的声明
    public delegate void DL_ChangeValue(String stringValue);

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn1_Click(object sender, EventArgs e)
        {
            //委托的实例化
            DelegateHelper.changeDelegate = ChangeMethod;
            Form2 frm = new Form2();
            frm.Show();
        }

        private void ChangeMethod(string aaa)
        {
            textBoxX1.Text = aaa;
        }
    }
View Code

窗体二代码:

  public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DelegateHelper.changeDelegate.Invoke(textBox1.Text);
        }
    }
View Code

2.通用异常处理

 把Action作为一个参数,然后写一个异常处理方法,把这个参数传递进去;

写一个Action的扩展方法,就可以实现方法后面直接处理异常,节省了代码的行数,去掉了重复的代码,使代码变得更加简洁

3.Linq 扩展调用

Where 的参数是泛型委托

原文地址:https://www.cnblogs.com/maanshancss/p/6382582.html