.NET Framework 2.0新增特性總結

來源:互聯網
上載者:User

  下午閑著無聊,翻了翻很久之前買的書籍,看了一下dotNetFramework2.0後添加的特性,包括以下幾點:

  • 程式碼片段。這個功能很早就知道了,Framework已經提供了很多程式碼片段,我們也可以自訂程式碼片段,不過之前一直沒有用過,今天實踐了一下,還是挺有意思的,這種代碼自動產生的思想其實挺有用的。另外發現一點,Framework中提供的程式碼片段中,關於C#和VB的數量明顯不一樣,不知道為啥C#要少呢?上網查了一下,說MSDN中提供了對C#程式碼片段的擴充,可以下載下來實驗一下。
  • 重構。這個重要性就不用再廢話了,之前通過IDE進行重構時,一直是在Eclipse中用,感覺非常方便。現在VS2005也加上這個功能了,感受了一下,和Eclipse差不多,一個比較好的地方是通過VS2005進行重構時,可以對同一個解決方案中不同的項目保持同步,這一點非常有用。
  • 調試。VS2005可以支援Debug時對代碼進行修改,這個特性已經用得非常頻繁了。
  • 可空類型。這個沒用過,不太清楚在什麼場合下最適用,或者說,在哪種情況下,不使用可空類型會造成非常大的麻煩,還請知道的人告訴我一下。關於可空類型,有以下代碼
    Code
    public static void Test()
    {
    int? x = 1;
    int y = 2;
    y = (int)x;
    x = y;
    x = null;
    y = x;

    int xx = x ?? 1;
    Console.WriteLine(xx);
    }

    其中,x被定義為可空類型,y被定義為int,那麼此時,y是可以被直接賦值給x的,但是x是不可以直接賦值給y的,它需要顯示類型轉換,所以上面的代碼是不會通過編譯的。另外,??可以看做是條件操作符的另一種形式。

  • 泛型。Java在1.5中加入了泛型,這樣在使用1.5去編譯之前的程式時,在集合類型變數的聲明中總是會見到非常煩人的Warning,去提示需要去定集合類中元素的確切類型,這一點很讓人不爽。dotNet在這方面做得很好,它對於同一種集合資料結構,提供了泛型和非泛型兩種選擇。
  • 多維陣列。這個不算是dotNetFramework2.0中新增的特性,這是我之前一直沒有注意到的事情,見以下代碼
    Code
    static void ArrayTestM()
    {
    int[,] nArrayHeight = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
    foreach (int n in nArrayHeight)
    {
    Console.WriteLine("{0}", n);
    }
    Console.WriteLine("二維數組輸出結束!");
    }
    static void ArrayOfArray()
    {
    int[][] arrayA ={ new int[] { 1 }, new int[] { 1, 2 }, new int[] { 1, 2, 3 }, new int[] { 1, 2, 3, 4 }, new int[] { 1, 2, 3, 4, 5 } };
    foreach (int[] ArrayN in arrayA)
    {
    foreach (int n in ArrayN)
    {
    Console.WriteLine("{0}", n);
    }
    }
    Console.WriteLine("數組的數組輸出結束!");
    }

    多維陣列分為以上兩種實現方式,一種是普通意義上的二維數組,我們使用[,]形式來進行定義,此時,數組中的每個元素還是一個最基本的元素,在遍曆時,只需一次迴圈即可;另一種是數組的數組,我們使用[][]形式進行定義,此時,數組中的每個元素都是一個數組,所以在遍曆時,需要兩次迴圈才可以。

  • 強型別。對於property或者資料庫Table中的欄位來說,在訪問方式上,之前比較常用的是採取字串硬式編碼方式進行訪問,例如:
    Code
    string lastName = this.dataSet1.Tables["Employees“].Rows[0]["LastName"];


    這樣寫的方式,我們很難在編譯時間發現可能的拼字錯誤,增加了發生錯誤的機率。通過使用強型別,同樣的功能,我麼可以這樣實現

    Code
    string lastName = this.northwindDataSet.Employees[0].LastName;

    這樣,我們就可以使用IDE智能感知的強大功能,提高了效率。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.