private void button5_Click(object sender, EventArgs e) { //实例化对象 MyInstObj myInstObj = new MyInstObj(); //创建委托并保存引用 MyDel1 delA = myInstObj.MyM1; MyDel1 delB = MyInstObj.OtherM2; delA += MyInstObj.OtherM2; delA -= myInstObj.MyM1;//删除实例方法 delA(1); }
private void button4_Click(object sender, EventArgs e) { MyDel1 delA, delB; //实例化对象 MyInstObj myInstObj = new MyInstObj(); //创建委托引用 - 第二种方法 delA = myInstObj.MyM1; delB = MyInstObj.OtherM2; MyDel1 delC = delA + delB; delC(1); }
private void button2_Click(object sender, EventArgs e) { MyDel1 delVar, dVal; //实例化对象 MyInstObj myInstObj = new MyInstObj(); delVar = new MyDel1(myInstObj.MyM1); //实例方法 dVal = new MyDel1(MyInstObj.OtherM2); //静态方法 //创建委托引用并保存-第二种方法 delVar = myInstObj.MyM1; //实例方法 dVal = MyInstObj.OtherM2; //静态方法 // 第二种方法是一种快捷方法,它仅仅由方法说明符组成。和方法一的代码是等价的。这种快捷语法能够工作是因为在方法名称和其相应的委托类型之间存在隐式转换 //调用 delVar(1); dVal(2); }