public static void Show() { Student student = new Student();//声明类以及调用 student.Id = 11; student.Name = ""; student.Study(); NoReturnWithPara method = new NoReturnWithPara(Plus); //2委托的实例化,传入一个方法名称 要求方法签名一致 NoReturnWithPara method1 = Plus; //简明声明委托 //用Lamdba表达式实现 { NoReturnWithPara method2 = (x, y) => Console.WriteLine("x={0},y={1}", x, y); //匿名方法体 } method.Invoke(1, 2); //3调用 method.BeginInvoke(1, 2, null, null); //没有委托就没有异步 method(1, 2); //调用 Plus(4, 5); method += Plus; method += Plus; method += Plus; method -= Plus;//多播委托 //foreach (NoReturnNoPara item in method.GetInvocationList())//获取委托的实列 //{ // item.Invoke(); //} }
public void Show() { //2.实例化委托 NoReturnNoPara delegateNoParaObj = new NoReturnNoPara(this.DoNothing); delegateNoParaObj.Invoke(); NoReturnWithPara delegateWithParaObj = new NoReturnWithPara(this.WithParaNothing); delegateWithParaObj.Invoke(2, "sss"); for (int i = 0; i < 10; i++) { delegateWithParaObj.BeginInvoke(i, i.ToString(), delegate(IAsyncResult t) { Console.WriteLine("当前线程ID:" + System.Threading.Thread.CurrentThread.ManagedThreadId); }, "哈哈哈"); } }