1.窗体传值
public class DelegateHelper { public static DL_ChangeValue changeDelegate; }
窗体一代码:
//委托的声明 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; } }
窗体二代码:
public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { DelegateHelper.changeDelegate.Invoke(textBox1.Text); } }
2.通用异常处理
把Action作为一个参数,然后写一个异常处理方法,把这个参数传递进去;
写一个Action的扩展方法,就可以实现方法后面直接处理异常,节省了代码的行数,去掉了重复的代码,使代码变得更加简洁
3.Linq 扩展调用
Where 的参数是泛型委托