1,集合
介绍:Systems.Collections命名空间中的一个类System.Collections.ArrayList也实现了IList,ICollection和IEnumerable,而这个类可以用于表示大小可变的项列表。
个人理解:ArrayList可以形象的表示称可变数组,Array表示称不可变数组。
例如:
这是array
Animal[] animalArray = new ANimal[2];
Cow myCowl = new Cow("xiaoyuan");
animalArray[0] = myCowl;
animalArray[1] = new Chicken("ken");
foreach(Animal myAnimal in animalArray)
{
Consale.WriteLine("New {0} object added to Array collection,"+"Name = {1}",myAnimal.ToString(),myAnimal.Name);
}
下面例子:ArrayList
ArrayList animalArrayList = new ArrayList();
Cow myCow2 = new Cow("Hayley");
animalArrayList.Add(myCow2);
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;