程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c# 5.0將帶來的五大全新功能

c# 5.0將帶來的五大全新功能

編輯:關於C語言
在本篇文章中,作者用C#(C#培訓 ) 5.0與之前的版本相做比較,總結出C# 5.0幾個的全新功能,供大家參考。

  第一:綁定運算符,:=:

  這個只是簡化了數據綁定,跟ASP.Net MVC3不斷改進一樣,其實不是什麼亮點改進。

  comboBox1.Text :=: textBox1.Text; //將文本框的內容綁定到下拉框。

  第二:帶參數的泛型構造函數:

  這個的加入給一些設計增加了強大功能,泛型早在C#2.0加入後就有著強大的應用,一般稍微設計比較好的框架,都會用到泛型,C#5.0加入帶參數泛型構造函數,則在原有基礎上對C#泛型完善了很多。:)

  public class T MyClass : T: class, new()

  //we might have

  public class T MyClass : T:class, new(int)

  第三:支持null類型運算:

  此功能,個人覺得並非什麼大的亮點,但至少對null類型,特別是有數據計算的這種null類型的支持,寫代碼還是方便不少。

  注意對於Nullable Types,在C#2.0就加入進來了,但是不支持計算,比如:

  int? x = null;

  int? y = x + 40;

  那麼y值是多少?不支持計算,得到的是null,想必大家知道為什麼結果是null了吧?但C#5.0可以,40加一個null的整數,我們要的結果是40,不過份吧?

  int x? = null;

  int y? = x + 40;

  Myobject obj = null;

  Myotherobj obj2 = obj.MyProperty new Myotherobj();

  第四:case支持表達式:

  這個是一個我很早就想如果能這樣就好了,沒想到在C#5.0裡就加入此功能,以前case裡只能寫一個具體的常量,而現在可以加表達式了,靈活多了。

  switch(myobj){

  case string.IsNullorEmpty(myotherobj):

  //邏輯代碼

  case myotherobj.Trim().Lower:

  //邏輯代碼

  第五:擴展屬性。

  我們在C#3.0裡有擴展方法,那麼在C#5.0裡將會加入擴展屬性的感念,對照擴展方法,不難理解擴展屬性的概念了。以下為擴展屬性的定義舉例:

  [Associate(string)]

  public static int Zivsoft_ExtensionProperty { get;set;}

  C#5.0 遠遠不只是上面描述的5點新功能,它如同C#4.0加入dynamic概念一樣,會加入異步處理概念,這個不是幾行代碼就能表達,而是將在設計,架構上,又會掀起一次飛躍……

  為了大家搶先看,就給一段C#5.0一段簡單的異步操作的代碼例子,注意(C#5.0兩個新加的關鍵字async, await):

  Task GetMovIEAsync(string title);

  Task PlayMovieAsync(Movie movIE);

  async void GetAndPlayMovIEsAsync(string[] titles)

  foreach (var title in titles)

  var movie = await GetMovIEAsync(title);

  await PlayMovieAsync(movIE);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved