匿名方法和代理的另外两个小小的特性
2008-07-01 14:13
176 查看
1。使用匿名方法的时候,可以访问调用它的代码块里面的代码。如:
这里的exploedTimes就可以被匿名方法访问
2。使用代理或者事件的时候,不必new xxx代理出来,可以直接写方法名。但是方法的签名要和对应的代理相同,不然会抛出一个编译时错误。
如:下面加入事件的时候,没有new一个代理出来哦。有点象asp.net中前台的代码。比如<asp:button runat = "server" Id="b1" Onclik="b1_Click"/>
这里的exploedTimes就可以被匿名方法访问
public static void Main(string[] args) { int exploedTimes = 0; Car c = new Car(); c.Exploed += new Car.CareExploedHandle<Car.CarEventArgs>(c_Exploed); c.Exploed += delegate(object sender, Car.CarEventArgs e) { exploedTimes++; Console.WriteLine(exploedTimes.ToString()); Console.WriteLine("annoymous method" + e.msg); }; }
2。使用代理或者事件的时候,不必new xxx代理出来,可以直接写方法名。但是方法的签名要和对应的代理相同,不然会抛出一个编译时错误。
如:下面加入事件的时候,没有new一个代理出来哦。有点象asp.net中前台的代码。比如<asp:button runat = "server" Id="b1" Onclik="b1_Click"/>
class Program { public static void Main(string[] args) { Car c = new Car(); c.Exploed += c_Exploed; for (int i = 0; i < 10; i++) { c.Accelerate(100); } } static void c_Exploed(object sender, Car.CarEventArgs e) { Console.WriteLine(e.msg); } }
相关文章推荐
- C#特性 学习笔记(对象初始化器 匿名类型 扩展方法)
- LeetCode Gas Station 两个特性,两种方法完美解答-更新证明方法
- C#4.0 新特性 - 匿名方法,lambds
- C#特性匿名方法
- JAVAWEB开发之Servlet3.0新特性的使用以及注解的详细使用和自定义注解的方法、动态代理的使用、利用动态代理实现细粒度的权限控制以及类加载和泛型反射
- 由apple sample code "LazyTableImages"谈谈scrollView的两个代理方法
- c#2.0新特性:(二)匿名方法(Anonymous Methods)
- 不能不说的C#特性-匿名方法和Lambda表达式
- 41-知识补充(UIPickerView的补充方法,使用self创建对象的好处,id和instancetype区别,KVC底层代码实现,文本框的两个代理方法)
- 5.编写一个程序,有两个类,其中类MAX中具有两个方法,方法名都是max,一个方法能够比较两个数的大小,另外一个方法能够比较三个数的大小。在另外一个类中创建对象,调用这两个方法,分别输出两组数:2、6
- C# 3.0 新特性 学习(二):匿名类型、扩展方法
- 黑马程序员----List集合中的另外两个小弟,Vector LinkedList(实现结构,本身特点,自己的独有方法). 泛型技术:
- C#4.0新特性学习(四)—匿名方法及Lambda表达式
- DotNet 3.0+ 新特性学习 之 匿名方法&Lambda表达式(Anonymous Method&Lambda Expression)
- C#特性之匿名方法和Lambda表达式
- c#2.0新特性:(二)匿名方法(Anonymous Methods)
- 匿名方法——.net2.0新特性
- 不能不说的C#特性-匿名方法和Lambda表达式
- JAVA中申请了两个对象,分别在调用方法和声明方法中把其中一个对象直接赋值给另外一个对象,运行结果,求原理。
- 为LINQ服务的C#新特性总结篇---扩展方法,匿名委托,lambda表达式,Action委托,Func委托,Linq中的order by,top和sum函数