1,集合 介紹:Systems.Collections命名空間中的一個類System.Collections.ArrayList也實現了IList,ICollection和IEnumerable,而這個類可以用於表示大小可變的項列表。 個人理解:ArrayList可以形象的表示稱可變數組,Array表示稱不可變數組。 例如: 這是array [csharp] Animal[] animalArray = new ANimal[2]; Cow myCowl = new Cow("xiaoyuan"); animalArray[0] = myCowl; animalArray[1] = new Chicken("ken"); [csharp] <p>foreach(Animal myAnimal in animalArray)</p><p>{</p><p> Consale.WriteLine("New {0} object added to Array collection,"+"Name = {1}",myAnimal.ToString(),myAnimal.Name);</p><p>}</p> 下面例子:ArrayList [csharp] ArrayList animalArrayList = new ArrayList(); Cow myCow2 = new Cow("Hayley"); animalArrayList.Add(myCow2); [csharp] animalArrayList.RemoveAt(1); 理解集合和數組,可以類比objective-c中的可變數組和數組理解比較好。 2,比較 is運算符: 運算語法:<operand> is <type> 判斷某一個對象是否屬於某一個類型。 IComparable和IComparer接口 IComparable:在要比較的對象類中實現,可以比較該對象和另一個對象。 IComparer:在一個單獨的類中實現,可以比較任意兩個對象。 一般情況下,我們使用IComparable給出類的默認比較代碼,使用其他類給出的非默認的比較代碼。 IComparable提供一個方法CompareTo()。這個方法接受一個對象,所以可以實現它,以便把Person對象傳送給他,說明這個人是否比當前的人更年輕或者年老 這個方法返回一個int. if(person1.ComparteTo(person2)) [可以在類裡面直接實現該方法] { } ICompare提供了一個Compare(),可以接受兩個對象 if(personCompare.Compare(person1,person2)==0) {.....} 3,轉換 可以隱式轉換,這個可以類比objective-C as運算符使用下面的語法,把一種類型轉換為制定的引用類型: <operand> as <type> 這只適用於下列情況: <operand> 的類型是 <type>類型 <operand> 可以隱式轉換為 <type>類型 <operand> 可以封箱到類型<type>中 如果不能從<operand>轉化為<type>,則表達式的結果就是null. 例如:ClassA obj1 = new ClassA(); ClassD obj2 = obj1 as ClassD;