1.字串拼接優化
語法格式:$」string 」
解釋:以$符號開頭開始字串,其中以{}來進行傳參,可以多個引數累加
例如:var results = $"hello ";
2.null檢測運算子
解釋:需要判斷的物件值後面跟隨?號符號直接進行判斷是否為空,然後條件不為空後需要執行的在「.」之後執行
例如:
program pro = new3.自動化屬性program();
console.writeline(pro?.getcnblogssite());
public
string
getcnblogssite()
語法格式: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
例如:
staticview codevoid main(string
args)
//方法定義為多個返回值,並命名
private
static (string a,string b,string
c) getfullname()
又例如:
staticview codevoid 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);
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 = 15.表示式方法體擴充套件;
int add(int
c)
console.writeline(add(a));
解釋:在6.0中一句話方法可以簡寫,但是建構函式,析構函式,屬性訪問器不可以,在7.0對此進行了擴充套件
例如:
//6.數值文字語法改進建構函式的表示式寫法
public cachecontext(string label) => this.label =label;
//析構函式的表示式寫法
~cachecontext() => console.error.writeline("
finalized!");
private
string
label;
//get/set屬性訪問器的表示式寫法
public
string
label
格式:_
解釋:執行數值中間使用「_」分割符,完全是為了可讀性。沒有其他實際意義。
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 ...