当前位置:  开发笔记 > 编程语言 > 正文

通过C#3中的代表和活动可以获得哪些新功能?

如何解决《通过C#3中的代表和活动可以获得哪些新功能?》经验,为你挑选了1个好方法。

我觉得我没有利用.NET 3.5及更高版本中可用的代理/事件的所有功能.并且或多或少仍然使用2.0中的代表功率.如果你告诉我现在应该如何使用代表/活动,技巧,捷径,我将不胜感激.

谢谢.

编辑

Jon建议他就此主题发表文章,我在这里发帖以便于浏览:

我的一些文章可能是相关的:

活动

C#2.0中的代表

关闭

C#2遭遇困难

C#3受到了影响

我的书,深度的C#,有一整章专门讨论代表(第5章).不幸的是,这不是免费的之一:(

PS.我找不到这个问题的副本,但确实在这个主题上看了很多.



1> Jon Skeet..:

我的一些文章可能是相关的:

活动

C#2.0中的代表

关闭

C#2遭遇困难

C#3受到了影响

我的书,深度的C#,有一整章专门讨论代表(第5章).不幸的是,这不是免费的之一:(

总结中的主要变化(正如Jared所说,这些是语言变化 - .NET本身并没有太大变化,超出它们变得通用,并且框架提供了方便FuncAction委托):

C#2:

方法组转换:

// Old:
button.Click += new EventHandler(HandleClick);
// New:
button.Click += HandleClick;

匿名方法:

button.Click += delegate { Console.WriteLine("Click!"); };

协方差/逆变:

EventHandler generalHandler = LogEvent;
button.Click += generalHandler;
button.KeyPress += generalHandler; // Event type is KeyPressEventHandler

C#3:

Lambda表达式:

button.Click += (sender, args) => Console.WriteLine("Click!");

或者更重要的是:

var people = list.Where(person => person.Name != "Jon")
                 .OrderBy(person => person.Age);

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有