zoukankan      html  css  js  c++  java
  • C# 6 的新特性~

    原文地址

    Mads Torgersen,微软 C# 程序管理者,它发布了一个视频,描述即将到来的下一个 C# 版本——C# 6。在 C# 6 的新特性之间,Mads 主要提到了 getter-only 属性,拉姆达箭头操作符,字符串插值(string interpolation) 等等。

    首先,Mads 说,C# 6 不会改版 C# 的设计哲学,并且将提供很多小得特性,来帮助整洁代码。

    Getter-only 自动属性

    C# 6 允许定义不变的自动化属性,例如,只支持一个 getter 方法的自动化属性:

    public class Point
    {
        public int X { get; }
        public int Y { get; }
        public int ReadWrite { get; set; }
    }

    Getter-only 自动化属性是只读的,可以通过构造函数来赋值。

    这个没太明白,C# 6 之前的版本也有这个特性啊~

    String 操作

    字符串插值传统的C#语法按 Mads 描述为“一种混乱且容易出错”:

    return String.Format("({0}, {1})", X, Y);

    C# 6 将引入一个新的字符串插语法:

    return "({X}, {Y})";

    单方法表达式的 Lamba 箭头操作符(Lamba-arrow operator

    新的 lambda 箭头操作符将简化返回一个单独表达式值的方法定义:

    public override string ToString() => "({X}, {Y})";
    public double Dist => Sqrt(X * X + Y * Y);

    按照 Mads 的说法,这将帮助减少大量“样板式”代码的键入。

    Index 初始化器

    在现在的 C# 中,index 设置器必须用一个单独的语句赋值:

    var result = new JObject();
    result["x"] = X;
    result["y"] = Y;

    在 C# 6,可能用一个表达式来初始化对象:

    var result = new JObject() { ["x"] = X, ["y"] = Y };

    这将导致一个高简洁和可读性好的 ToJSon 方法的定义:

    public JObject ToJson() => new JObject() { ["x"] = X, ["y"] = Y };

    Null 传播操作符(Null-propagating operators

    Null 条件操作符是一个新特性,旨在检查 null 值。因此,不是下面那样检查:

    if (json != null &&
        json["x"] != null &&
        json["x"].Type == JTokenType.Integer)

    C# 6 运行使用一个新的 ? 操作符,将计算紧跟着它表达式的一部分,只要它应用在一个非null对象,上述表达式就可以缩小到:

    if (json?["x"]?.Type == JTokenType.Integer)

    上面这几个特性,微软显然吸收了开源社区的做法,比如,Groovy,让代码变得更加简洁~

    异常过滤(Exception filtering

    异常过滤运行捕获表达式,只要符合一个特定条件:

    try
    { }
    catch (ConfigurationException e) if (e.IsSevere)
    { }

    Mads 说,这是一个更好的 catch-rethrow 语法,因为,以前,当重新抛出异常时,异常最初发生的地方将会丢失。

    catch 和 finally 块中的 Await

    最后,在 catch 和 finally 块中可以使用 await,这增加了在错误处理的灵活性。Mads 补充说,该特性被排除在 C# 6 之前的版本,因为,这个特性如何实现,那时还不明确。

    try
    { }
    catch (ConfigurationException e)
    { 
        await LogAsync();
    }
    finally
    {
        await CloseAync();
    }

    最近发布的Xamarin.Studio 5.9增加了 C# 6 支持,改进了 Sketches,并带来了新的调试器查看器及其它一些更新。C# 6 将在 Visual Studio 2015 中正式发布,并只在社区版本中提供。尽管如此,Xamarin.Studio 也已经支持 C# 6 的新特性。

  • 相关阅读:
    批量SSH操作工具---OmniTTY安装
    CentOS6.6修改主机名和网络信息
    浪潮服务器通过ipmitool获取mac地址
    linux批量执行工具omnitty使用方法
    操作系统下查看HBA卡信息wwn的方法
    Linux下multipath多路径配置
    IPMITOOL 配置BMC用户设置
    第五讲 对于耦合的认识 target/action设计模式 delegate设计模式 手势识别器
    UI第四讲.事件处理(按钮点击切换视图,触摸事件)
    UI第三讲.自定义视图 视图控制器 检测屏幕旋转
  • 原文地址:https://www.cnblogs.com/liuning8023/p/4511316.html
Copyright © 2011-2022 走看看