程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#3.0語言新特性之對象和集合初始化器(4)

C#3.0語言新特性之對象和集合初始化器(4)

編輯:關於C語言

好了,現在我們就可以使用對象初始化語法,創建一個Rectangle的實例並且 將它內部的點設置如下:

Rectangle myRect = new Rectangle

    {

        TopLeft = new Point { X = 100, Y = 100 },

        BottomRight = new Point { X = 200, Y = 200 }

    };

這樣設置是不是簡單多了,從而也提高了可讀性。這個時候,我們就能夠體 會到它相對於傳統方法的好處了。

在最後,為了能夠讓讀者更好地進行對比學習,我們再給出它的原始調用方 法:

Rectangle myRect = new Rectangle();

   Point p1 = new Point();

   p1.X = 100;

   p1.Y = 100;

   myRect.TopLeft = p1;

   Point p2 = new Point();

   p2.X = 200;

   p2.Y = 200;

   myRect.BottomRight = p2;

20.4.4 集合初始化器

與對象初始化語法類似的是集合初始化。這個語法使得我們可以用簡單的數 組類型來初始化一個泛型容器(比如List<T>)。可以應用集合初始化器 的對象的類型必須實現了System.Collections.Generic.ICollections<T> 並指定了確定的T。此外,必須存在從每個元素初始化器的類型到T的隱式轉換。 如果這些條件不能滿足,就會產生一個編譯期錯誤。集合初始化器將依次對每個 指定的元素調用ICollection<T>.Add(T)。在這個約束之下, System.Collection命名空間下的容器(比如ArrayList)就不能使用這種新語法 ,因為它們並沒有實現所需的接口。

一個集合初始化器由一系列的元素初始化器構成,包圍在{和}記號之間,並 使用逗號進行分隔。每個元素初始化器指定一個元素,該元素將被添加到待初始 化的集合對象中。為了避免與成員初始化器混淆,元素初始化器不能是賦值表達 式。如下面的例子所示:

// 初始化一個普通數組

  int[] myIntArray = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

  // 初始化一個int型泛型List<>

  List<int> myGenericList = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

  // 下面這句是非法的,ArrayList沒有實現ICollection<T>接口

  ArrayList myList = new ArrayList { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

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