摘要 委托是持有一个或多个方法的对象,当然正常情况下你不会想要执行一个对象,但委托与对像不同,可以执行委托,这时委托会执行他所持有的方法 如果用过c++,可以把委托看成一个类型安全的面向对象的c++函数指针 正文 对于委托,有两个字"回调"这是重点。 一个例子delegate void DelNumber(int value);void ShowLow(int value) { MessageBox.Show("低值" + value.ToString()); } void ShowHigh(int value) { MessageBox.Show("高值" + value.ToString()); }private void btnShow_Click(object sender, EventArgs e) { DelNumber delNumber; Random random = new Random(); int value = random.Next(1, 99); delNumber = value < 50 ? new DelNumber(ShowLow) : new DelNumber(ShowHigh); delNumber(value); } 声明流程 组合委托 委托可以使用额外的运算符来组合,这个运算符最终会创建一个新的委托delegate void MyDel(string value);void Print(string value) { MessageBox.Show("Print " + value); } void Show(string value) { MessageBox.Show("Show " + value); } private void btnShow_Click(object sender, EventArgs e) { MyDel del1 = new MyDel(Print); MyDel del2 = new MyDel(Show); MyDel del3 = del1 + del2; del3("TEST"); }