天天看點

c# 6.0新特性(一)

接近年底了,基本上沒什麼活了,就學點新東西,就想着了解下c# 6.0的新特性。在code project上看到了一篇不錯的文章,就準備翻譯一下,順便照着學習學習。廢話不多說,直奔主題。

衆所周知,c# 6.0 是在visual studio 2015中引入的。在其他的幾個版本中同樣引入一些特性,比如在c# 3.0中引入了linq,在c# 4.0中引入了動态類型dynamic,在c#5.0中引入async和await等等。

在c# 6.0更多關注了文法的改進,而不是增加新的功能。這些新的文法将有助于我們更好更友善的編寫代碼。

c# 6.0新特性(一)

以下是c# 6.0的幾種改善的新的文法:

1、using static:使用static

2、auto property initializers:自動屬性初始化

3、index initializers:索引初始化

4、string interpolation:字元串插入

5、expression bodied members

6、getter only auto properties:隻讀自動屬性

7、exception filters:異常過濾器

8、null conditional operators:null條件操作符

9、declaration expressions:聲明表達式

這是一件在你的程式設計生涯中非常有用的一個特性。現在你可以通過using 關鍵字通路類的屬性和方法了。實作這個,你隻需要在你類的命名空間前using之後static關鍵字就可以了。

當我們使用using引用了system.console這個類。那麼我們就可以通路這個類的所有屬性和方法。下面看一個在c# 6.0之前和之後我們是如何做的例子:

before c# 6.0

c# 6.0新特性(一)
c# 6.0新特性(一)

在c# 6.0之前,如果我們要使用wrilteline()方法,我們使用console.writeline()。如果沒有引用console這個類,我們是無法通路這個方法的。

c# 6.0中

c# 6.0新特性(一)
c# 6.0新特性(一)

c# 6.0在使用這個類的時候并不需要每次都引用這個類。我們隻需要在using中聲明這個類,那麼我們就可以通路到它。

當然,我們也可以引用其他的類并通路它的成員。

在上面的例子中,我們使用了myclass類的hello()方法。

c# 6.0新特性(一)
c# 6.0新特性(一)

在這裡我們使用using引入了命名空間了,如下所示:

我們使用屬性通路内部成員。屬性有setter和getter方法。在c# 6.0之前,我們并不能直接為屬性指派。如果真要這麼做,我們隻能通過屬性對應的字段來初始化。但是c# 6.0提供更靈活的方式。

通過c# 6.0我們可以在定義屬性的時候直接為它指派。

之前我們通過構造函數初始化屬性。看下面的例子,在這裡我們建立了多個屬性,并在構造函數中為他們指派。

c# 6.0新特性(一)
c# 6.0新特性(一)

但是在c#6.0中非常友善,我們不必擔心怎麼、在哪兒初始化屬性值。你可以直接在屬性後面通過=asign指定屬性的值。這種方式不會引發異常并且可以正常運作。在下面的例子中,我們可以看到emplyeeid,firstname,lastname初始化。

c# 6.0新特性(一)
c# 6.0新特性(一)

c#6.0提供了一種新的初始化集合的方式。你可以建立想字典,hashtable一樣的集合。衆所周知,字典是鍵值對形式的,并且為對應的key指定value。在c#6.0之前,我們有很多不同的方式去建立鍵值對。看一下下面的在c#中c#6.0之前怎麼使用鍵值對字典的。

c# 6.0新特性(一)
c# 6.0新特性(一)

in c#6.0

但是在c#6.0中,我們可以邏輯上為索引為1的指定“mukes kumar”的值,其它的以此類推。你可以看看下面的這個例子,将消除你所有的疑慮。

c# 6.0新特性(一)
c# 6.0新特性(一)

之前也看過這方面的文章,沒動手實作過,今天嘗試了下,發現非常的友善。

部落格位址:

<a href="http://www.cnblogs.com/wolf-sun">http://www.cnblogs.com/wolf-sun/</a>

部落格版權:

本文以學習、研究和分享為主,歡迎轉載,但必須在文章頁面明顯位置給出原文連接配接。

如果文中有不妥或者錯誤的地方還望高手的你指出,以免誤人子弟。如果覺得本文對你有所幫助不如【推薦】一下!如果你有更好的建議,不如留言一起讨論,共同進步!

再次感謝您耐心的讀完本篇文章。http://www.cnblogs.com/wolf-sun/p/5168217.html

繼續閱讀