C#6.0一些特性

來源:互聯網
上載者:User

標籤:靜態類   性方面   輸出   length   情況   需要   world   hello   int   

1.自動屬性初始化的改進

聲明屬性時可以直接進行初始化

public int id {get;set;}=10;

 自動屬性是省去了get和set內部的過程,而直接用set;get;這樣的語句代替,

把這個過程交給了系統,系統也為這個屬性動態產生一個對應的欄位。

下面代碼是一個自己控制get和set方法的樣本:

        private int myVar;        public int MyProperty        {            get { return myVar; }            set { myVar = value; }        }
這裡最簡單的邏輯。

示範:可以看到對屬性賦的初值是有效,並且正確的輸出了。

 

2.靜態類的引入

以控制台應用程式為例,以前在控制台輸出內容時寫的代碼是:

Console.WriteLine("hello world");

 這裡的Console就是屬於System命名空間下的一個靜態類。

現在可以這樣用,在引入命名空間的地方,把靜態類引入。

using static System.Console;

這裡需要注意的是,使用static的關鍵字,靜態類的類名要求的全名。

在代碼中就能這樣用了:

WriteLine("世界,你好");

 省去了靜態類的開頭。個人理解是為了代碼的冗餘。

3.string.Format的改進

這裡直接更改了它的形式,已經不再使用string.Format這種形式了。

為了形成對比,下面是兩個樣本的比較。

原:

string name="喜歡";string t1=string.Format("{0,10}",name);

對{0,10}的理解,0表示匹配第0個參數,10表示向左補全,使字串長度不滿10的時候左以空格補全。如果原字串長度大於10,則這個參數將無效,如果是負數則表示右補全。

如果是{0:yyyy-mm-dd}以冒號隔開的表示以後面的格式顯示資料。

新:

string name="喜歡";string t1=$"{0,10}";

地方直接以"$"代替了string.Format,並且把參數寫在{}大括弧裡,不再需要佔位符。

 

4.集合初始化器

之前我一直是使用這樣的方式初始化的,

Dictionary<string,int> dic=new Dictionary<string,int>{{"1",1},{"2",2}};

現在可以是:

Dictionary<string,int> dic=new Dictionary<string,int>{["1"]=1,["2"]=2};

個人感覺方便了一點點,在直觀性方面也比較好看。

 

5.null運算式

之前只知道可空實值型別,像int?這樣的格式,正常情況下,實值型別是不可以為null,只有參考型別才能為null;

string[] test=new string[]{"xihuan","xiaoai"};int? length1=test[0]?.Length;
int? result=test[1]?.Length??

int d=  "sfsd"?.Length??5;

??雙問號操作符,左邊為null則取值為右邊,左邊不為null則為取值為左邊。

C#6.0一些特性

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.