C#3.0 新特性學習筆記(1): 對象集合初始化器

來源:互聯網
上載者:User

對象集合初始化器

 一. 介紹
    (1)對象初始化

    如果一個類有public欄位,在建立類的對象執行個體時可以使用下面的代碼來初始化這些欄位;

    public class PersonInfo
    {
         public string id;
         public string name;
         public string description;
    }

   PersonInfomy = new PersonInfo();
   my.id= “9527”;
   my.name = "Jack Dong";
   my.description = "I am a Software Engineer";

    在C#3.0中提供了一種更簡便的方法來初始化這些public變數,代碼如下:

    PersonInfomy = new PersonInfo
    {
         id = “9527”,
         name = "Jack Dong";
         description = "I am a Software Engineer";
    };

    上面的代碼的寫法有些象帶參數的構造方法,但這將並不是調用了PersonInfo的構造方法(因為PersonInfo並沒有帶三個參數的構造方法),

而只是C#編譯器玩的一個魔術。實際上,上面的代碼在編譯後,仍然和使用傳統的初始化欄位的方法一樣。只是在文法上看起來更簡單(至少不

用寫那麼多個my)。

 (2)集合初始化

   集合初始化,不需通過ADD方法,以前比如構造個List,都要一個個現在就不用了 .

   在C#3.0中改進了對集合類的初始化方式(使其初始化的方式類似於數組)。但遺憾的是,這種初始化方式只支援用泛型的集合類,也就是說,

   只有實現了System.Collections.Generic. Cllection<T>的集合類才可以使用這種初始化方法。代碼如下:

   List<string> myList = new List<string> { "a", "b", "c" };
   foreach (string str myList)
   {
         textBox1.AppendText(str);
   }

 二. 注意點

    使用這種方法進行對象初始化,必須是public的欄位(不能是protected、private或預設修飾符的欄位)。

聯繫我們

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