C# 6.0 (C# vNext) 新功能之:Event initializers
2014-10-13 22:40
239 查看
事件初始化(Event initializers)
在 C# 6.0 新增功能,可以在建构实例时,直接初始化事件处理函式,如下:
例一:
例二:
例三:
另一个例子,在宣告事件时,直接初始化
接下来比较一下,原本的写法和新的写法:
以前的写法:
新的写法:
在 C# 6.0 新增功能,可以在建构实例时,直接初始化事件处理函式,如下:
例一:
new Customer { Notify += MyHandler };
例二:
var client = new WebClient { DownloadFileCompleted += DownloadFileCompletedHandler };
例三:
var button = new Button { ... Click += (source, e) => ... ... };
另一个例子,在宣告事件时,直接初始化
public virtual event EventArgs RoslynReleased = delegate { };
接下来比较一下,原本的写法和新的写法:
public class Person { private int _age; public int Age { get { return _age; } set { _age = value; OnAgeChanged(EventArgs.Empty); } } public string Name { get; set; } public event EventHandler AgeChanged; protected virtual void OnAgeChanged(EventArgs e) { if (AgeChanged != null) { AgeChanged(this, e); } } public override string ToString() { return string.Format("Name:{0}, Age:{1}", Name, Age); } }
以前的写法:
var person = new Person { Age = 30, Name = "Calvin" }; person.AgeChanged += (s, e) => Console.WriteLine("Person:{0}", ((Person)s)); person.Age += 1;
新的写法:
var person2 = new Person { Age = 30, Name = "Kelly", AgeChanged += (s, e) => Console.WriteLine("Person:{0}", ((Person)s)); }; person2.Age += 1;
相关文章推荐
- C# 6.0 (C# vNext) 新功能之:Indexed Members and Element Initializers 索引的成員和元素初始化
- C# 6.0 (C# vNext) 新功能之:Auto-Properties with Initializers
- C# 6.0 (C# vNext) 新功能之:Static Using Statements
- C# 6.0 (C# vNext) 新功能之:Expression Bodied Functions and Properties
- C# 6.0 (C# vNext) 新功能之:Declaration Expressions
- C# 6.0 (C# vNext) 新功能之:Numeric Literal Formats
- C# 6.0 (C# vNext) 新功能之:Exception-Handling Improvements
- C# 6.0 (C# vNext) 的新功能:Expression Bodied Functions and Properties
- C# 6.0 (C# vNext) 新功能之:Primary Constructors 主要的构造函式
- C# 6.0 (C# vNext) 新功能之:Nameof Expressions
- C# 6.0 (C# vNext) 的新功能:Exception-Handling Improvements
- C# 6.0 (C# vNext) 新功能之:Null-Conditional Operator
- C# 6.0 (C# vNext) 新功能之:Semicolon operator
- C# 6.0 新功能Top 10
- C# 6.0 的新功能
- C# 实现事件(Event)演习代码
- C#中的delegate和event
- C#中的delegate和event
- .Net 2.0 新功能:C#调式增强(C# Debugger Enhancements)
- C#中的delegate和event