2KB项目,专业的源码交易网站 帮助 收藏 每日签到

简洁引见 C# 6 的新特征

  • 时间:2019-03-14 19:12 编辑:2KB 来源:2KB.COM 阅读:404
  • 扫一扫,手机访问
  • 分享
摘要:
C# 英文原文:Briefly exploring C# 6 new features

几周前我在分歧的地方读到了有关C#6的一些新特征。我就决议把它们都搜集到一同,假如你还没有读过,就能够一次性把它们都过一遍。它们中的一些可能不会如预期那样奇异,但那也执偾今朝的更新。

你可以经过下载VS2014或许装置这里针对visual studio2013的Roslyn包来获得它们。

那末让我们看看吧:

1. $ sign

运用它的目标是简化基于索引的字符串,仅此罢了。它不是像如今C#的一些静态特征,由于其外部运用了正轨的索引功用. 为了编译了解请看下面的示例:

var col = new Dictionary<string, string>()
            {
                $first = "Hassan"
            };

   //Assign value to member
   //the old way:
   col.$first = "Hassan";

   //the new way:
   col["first"] = "Hassan";

2. 异常过滤器:

异常过滤器曾经被VB编译器支撑了,而如今它也被引入了C#。异常过滤器让你可认为一个catch块指定一个前提. 这个catch块就只会在前提被知足时被履行 , 这是我最爱好的特征,那末就让我们来看看示例吧:

try
            {
                throw new Exception("Me");
            }
            catch (Exception ex) if (ex.Message == "You")
            {
                // this one will not execute.
            }
            catch (Exception ex) if (ex.Message == "Me")
            {
                // this one will execute
            }
其它翻译版本 (1) 加载中

3. catch和finally块中await要害字

据我所知,没有人晓得C# 5中catch和finally代码块内await要害字不成用的缘由,不管何种写法它都是不成用的。这点很好由于开辟职员常常想检查I/O操纵日记,为了将捕获到的异常信息记载到日记中,此时需求异步实行。

try
            {
                DoSomething();
            }
            catch (Exception)
            {
                await LogService.LogAsync(ex);
            }

4. 声明表达式

这个特征答应开辟职员在表达式中界说一个变量。这点很容易但很适用。过来我用asp.net做了很多的网站,下面是我经常使用的代码:

long id;
if (!long.TryParse(Request.QureyString["Id"], out id))
{ }

优化后的代码:

if (!long.TryParse(Request.QureyString["Id"], out long id))
{ }

这类声明方法中变量的感化域和C#运用普通方法声明变量的感化域是一样的。

其它翻译版本 (1) 加载中

5. Static的运用

这一特征答应你在一个using语句中指定一个特定的类型,尔后这个类型的一切静态成员都能在前面的子句中运用了.

using System.Console;

namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            //Use writeLine method of Console class
            //Without specifying the class name
            WriteLine("Hellow World");
        }
    }
}

6. 属性的主动初始化:

C# 6 主动温馨化属性就像是在声明地位的域。这里独一需求晓得的是这个初始化不会招致setter办法不会在外部被挪用. 后台的域值是间接被设置的,下面是示例:

public class Person
    {
        // You can use this feature on both
        //getter only and setter / getter only properties

        public string FirstName { get; set; } = "Hassan";
        public string LastName { get; } = "Hashemi";
    }

7. 主结构器:

呼哈哈,主结构器将帮你消弭在获得结构器参数并将其设置到类的域上,以支撑前面的操纵,这一苦楚. 这真的很有效。这个特征的首要目标是运用结构器参数实行初始化。当声了然主结构器时,一切其它的结构器都需求运用 :this() 来挪用这个主结构器.

最初是下面的示例:

//this is the primary constructor:
    class Person(string firstName, string lastName)
    {
        public string FirstName { get; set; } = firstName;
        public string LastName  { get; } = lastName;
    }

要留意主结构器的挪用是在类的顶部.

本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协定,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部