c 6 0與7 0新特性介紹記錄

2022-01-16 09:26:47 字數 2781 閱讀 6403

1.字串拼接優化

語法格式:$」string 」  

解釋:以$符號開頭開始字串,其中以{}來進行傳參,可以多個引數累加

例如:var results = $"hello ";

2.null檢測運算子

解釋:需要判斷的物件值後面跟隨?號符號直接進行判斷是否為空,然後條件不為空後需要執行的在「.」之後執行

例如:

program pro = new

program();

console.writeline(pro?.getcnblogssite());

public

string

getcnblogssite()

3.自動化屬性

語法格式:attribute="";

解釋:物件屬性後面直接可以進行賦值操作。像普通賦值一樣。

例如:public string name =「張三」;

4.表示式方法體

語法格式:=》

解釋:一句話的那種方法體,可以使用箭頭函式,不需要大括號,更加簡便

例如: public actionresult index ()=> view();

5.引用靜態類

解釋:可以直接引用靜態類

例如:using static system.math;

6.帶索引的物件初始化器

解釋:就是形如字典那種形式可以直接通過索引初始化

例如:var dic = new dictionary;

7.catch和finally 中使用await

解釋:在5.0中await是不能在catch和finnaly塊中使用的,在6.0移除了此限制。

8.out引數寫法

例如:int.tryparse("123", out int x);   可以直接用的時候才定義

9.結構體可以包含無參函式

解釋:在以前結構體是不可以包含顯式的無參建構函式的,現在可以了

1.元組

語法格式:tuple

解釋:可以建立不同的型別到乙個集合中,然後進行返回,返回使用item1,item2....你以為就是這些東西嗎,錯了然這是4.0的東西了,現在7.0又給我們進行了優化。不過需要引用system.valuetuple

例如:

static

void main(string

args)

//方法定義為多個返回值,並命名

private

static (string a,string b,string

c) getfullname()

view code

又例如:

static

void main(string

args)

private

static (string a,string b,string

c) getfullname()

view code

在補充一下原寫法形式

//

元組資料建立

public tuplegettuple()

//獲取元組值

var result =gettuple();

console.writeline(result.item1);

console.writeline(result.item2);

view code

2.匹配模式

2.1針對is的小擴充套件

格式:a is type b

解釋:引數a是不是這個型別如果是就賦值給b然後在使用b做操作

例如:object a = 1;if (a is int c)console.writeline(c);

2.2switch的小擴充套件

格式 :case  type a:  以及篩選值的case type a when a<0:

解釋:case可以針對型別進行匹配和根據型別匹配後在進行條件篩選

3.ref的改動

解釋:ref在以前只是用作於引數,在7.0中ref可以作為本地變數和返回值使用。

4.區域性函式

解釋:與區域性變數類似,只在特定的函式中可以訪問的函式。有點類似於func委託的感覺可以在內部定義乙個區域性方法臨時使用,具體區別還沒搞清除。

int a = 1

;

int add(int

c)

console.writeline(add(a));

5.表示式方法體擴充套件

解釋:在6.0中一句話方法可以簡寫,但是建構函式,析構函式,屬性訪問器不可以,在7.0對此進行了擴充套件

例如:

//

建構函式的表示式寫法

public cachecontext(string label) => this.label =label;

//析構函式的表示式寫法

~cachecontext() => console.error.writeline("

finalized!");

private

string

label;

//get/set屬性訪問器的表示式寫法

public

string

label

6.數值文字語法改進

格式:_

解釋:執行數值中間使用「_」分割符,完全是為了可讀性。沒有其他實際意義。

c 6 0與7 0新特性介紹記錄

1.字串拼接優化 語法格式 string 解釋 以 符號開頭開始字串,其中以 來進行傳參,可以多個引數累加 例如 var results hello 2.null檢測運算子 解釋 需要判斷的物件值後面跟隨?號符號直接進行判斷是否為空,然後條件不為空後需要執行的在 之後執行 例如 program pr...

C 6 0和7 0的部分新特性介紹

語言版本 發布時間 net framework要求 c 1.0 2002.1 net framework 1.0 c 1.1 1.2 2003.4 net framework 1.1 c 2.0 2005.11 net framework 2.0 c 3.0 2007.11 net framewor...

c 6 0新特性(一)

接近年底了,基本上沒什麼活了,就學點新東西,就想著了解下c 6.0的新特性。在code project上看到了一篇不錯的文章,就準備翻譯一下,順便照著學習學習。廢話不多說,直奔主題。眾所周知,c 6.0 是在visual studio 2015中引入的。在其他的幾個版本中同樣引入一些特性,比如在c ...