- 静态using(static using)。引用静态类后,可以直接方法名
old: using System; Console.WriteLine("Hello, World!"); new: using static System.Console; WriteLine("Hello, World");
- 表达式方法 使用表达式方法,只有一条语句的方法可以使用lambda语法写。
old: bool IsSquare(Vector2 v2) { return v2.x == v2.y; } new: bool IsSquare(Vector2 v2) => v2.x == v2.y;
- 表达式属性
old: public string FullName get { return FirstName +"" + LastName; } new: public string FullName => FirstName +"" + LastName;
- 自动属性初始化
old: public int Age { get; set; } new: public int Age { get; set; } = 34;
- 只读自动属性
old: private readonly int _bookId; public BookId { get { return _bookId; } } new: public BookId {get;}
- nameof操作符 字段、属性、方法和类型的name可以通过nameof访问。使用nameof,可以方便的重构name变化
old: public void Method(object o) { if (o == null) throw new ArgumentNullException("o"); } new: public void Method(object o) { if (o == null) throw new ArgumentNullException(nameof(o)); }
- Null传递操作符(?.)
handler?.Invoke(source, e);
- 字符串插值($)
$"name={Name},age={Age}"
- 字典初始化器
old" var dict = new Dictionary<int, string>() { {3, "three"}, {7, "seven"} } new: var dict = new Dictionary<int, string>() { [3] = "three", [7] = "seven" }
- 异常过滤器
try { throw new WebException("Request timed out..", WebExceptionStatus.Timeout); } catch (WebException webEx) when (webEx.Status == WebExceptionStatus.Timeout) { // Exception handling }
- 在Catch使用Await
old: bool hasError = false; string errorMessage = null; try { //etc. } catch (MyException ex) { hasError = true; errorMessage = ex.Message; } if (hasError) { await new MessageDialog().ShowAsync(errorMessage); } new: try { //etc. } catch (MyException ex) { await new MessageDialog().ShowAsync(ex.Message); }
文章来源地址https://www.toymoban.com/news/detail-465851.html
文章来源:https://www.toymoban.com/news/detail-465851.html
到了这里,关于C# 6.0 语法新特性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!