1.里氏转换 1)子类可以赋值个父类 2)如果父类中装的是子类对象,那么可以将这个父类强制转换为子类对象。
3)子类对象可以调用父类的成员,但父类的对象不能调用子类的成员。
//子类对象可以赋给父类 person p = new student(); //父类中包含子类成员,可以将父类强制转换成子类。 student ss = (student)p; 2.强制类型转换判断 is:表示A类型是否能强制转换成B,如果能够转换成功,则返回一个true,否则返回一个false。 as:表示类型转换。如果能够转换则返回对应的对象,否则返回一个null。 if (p is student) { student st = (student)p; Console.WriteLine("转换成功"); } else { Console.WriteLine("转换失败"); }
//as 如:p as student p强制转换成student类型。 student stu = p as student;
3.//创建一个集合ArrayList ArrayList list = new ArrayList(); //集合中可以添加任意类型元素 // list.Add主要用于添加单个元素 list.Add(2); list.Add(3.14); //list.Add(new int[]{1,2,3,4,5,6});//这个不能直接输出,需要进行类型强制转换后才能输出 //list.Range()用于添加集合元素 list.AddRange(new int []{1,2,3,4,5,6});//采用range添加的集合能后用for输出。 for (int i = 0; i < list.Count; i++) { Console.WriteLine(list[i]); } list.AddRange(list);//添加list集合 //移除单个元素 list.Remove(true); //根据下标移除元素 list.RemoveAt(0); list.Clear();//清空集合
list.RemoveRange(0,4);//根据下标移除一定范围的元素
list.Sort();//升序排列,但必须满足的条件是集合中的元素类型要一致
list.Reverse();//将集合中的元素反转
list.Insert(0,'1');//在指定下标前,插入单个字符 list.InsertRange(0,new int []{1,2,3});//在指定的下标前插入一个集合
bool b = list.Contains(1);//判断集合中是否包含某元素
5.ArrayList集合中的长度问题 每次集合中实际包含的元素的个数(count)超过了包含元素的个数(capacity)的时候,集合就会向内存中申请多开辟一赔的空间,来保证集合的长度一直够用。(按照2的倍数增大)
6.hashtable 键值对集合 var d = 2;//根据赋值推断变量的类型。
键值对集合中,键必须是唯一的,值可以重复。
ht.ContainsKey();//判断是否有某个键
ht.clear();//清空集合中的所有元素 ht.Remove();//根据键去移除元素
Hashtable ht = new Hashtable(); //添加键值对到集合中去 ht.Add(1 ,"张三"); ht.Add(2,2); ht.Add(false ,"你是错五的"); //添加数据的另一种方式 这种形式的添加数据,如果有键了,则会干掉原有的值,添加新的值 ht[6] = " xinglaisde"; foreach(var item in ht.Keys) { Console.WriteLine("键{0} ,值{1}",item,ht[item]); }
|
请发表评论