现在你知道了如何构造委派对象,下面让我们来谈谈回调方法是如何被调用的。为方便起见,我们还是使用 Set类中的ProcessItems: // public void ProcessItems(Feedback feedback) { for (Int32 item = 1; item <= items.Length; item++) { if (feedback != null) { // 如果指定任何回调,则调用它们 feedback(items[item], item, items.Length); } } } // 注释行下面的那一行代码就是调用回调方法。仔细看看代码,它调用feedback函数并传递三个参数。但是feedback是不存在的。再一次指出,编译器知道feedback是个引用某个委派对象的变量,并且编译器会产生实际的代码来调用委派对象的Invoke方法。换句话说,编译器看到下面这行代码后: feedback(items[item], item, items.Length); 编译器产生的结果与下面这行源代码产生的结果一样: feedback.Invoke(items[item], item, items.Length); |
闂備浇銆€閸嬫捇鏌熼婊冾暭妞ゃ儲鍨块弻鐔衡偓娑櫭慨鍥р攽椤曞棙瀚�闂備礁鎼悮顐﹀磿閸愯鑰块柛娑欐綑缂佲晠鏌熼婊冾暭妞ゃ儻鎷�>>
正在阅读:介绍.NET中的委派(Delegates)之三介绍.NET中的委派(Delegates)之三
2004-02-14 09:34
出处:
责任编辑:pjl
键盘也能翻页,试试“← →”键