泛型接口,接口,常用接口,列表ArrayList,泛型,Dictionary(字典)-----未完待续

接口
接口相当于没有方法实现的抽象类.
public interface Flyable { void Flay(); }

接口方法不要public.(为什么不能用private,public,因为如果能private,那么这个方法只有自己能调用,然后自己又实现不了代码,木有意义).
1.一个类只能继承自一个类.但是可以实现多个接口.
2.一个抽象类中可以定义实现的代码,但是接口不能定义实现代码(哪儿怕方法只是一个空的括号,也是空实现).
3.接口的多态特性,类型转换,is,as和类基本一样.
*抽象类定义的是公共的实现和能力,接口只能定义公共的能力.
*接口相当于给类打一个标签,标志这个类有这种能力. 接口中能声明:方法,属性(属性本质是两个方法),索引器,不能声明字段. 常用系统接口 *using,实现了IDisposable 接口的对象可以使用using进行资源shengm,出了using的作用域以后自动调用Dispose方法. Dispose和Close的区别:实现了IDisposable接口必须定义Dispose方法,但不一定有Close,很多DIspose的实现都是调用Close方法。Sqlconnection Close以后还能重新Open,但是Dispose以后就不能再用. *foreach:实现了IEnumerable接口的对象都可以使用foreach进行遍历. 列表 *ArrayList,可以看做是动态的数组.Add.Clear.Contains.Count.Remove(Remove一个元素以后后面的元素会递补).RemoveAt.ToArray(转换,再没关系).索引器. C#中所有的数组类型int[].string[]等都是继承自Array类. 泛型 用ArrayList的麻烦的地方:数据放进去就不知道是什么类型的了;不能防止非法类型数据的放入;将ArrayList返回给其他函数,会令调用者很困惑。要区分变量、返回值类型和实际对象类型的区别。IntArrayList,StringArrayList又没完没了。 我们需要泛型的ArrayList,所以就有了List。List 除此之外并无不同,表示List中放的数据类型是int类型的,因为有声明类型时的约定,因此所有方法的参数、返回值都是确定类型的了。 List 实现了IEnumerable(泛型版本的IEnumerable)、ICollection (泛型版本的ICollection) 。 所有的List所有的方法也都是泛型的,范型的集合提供的方法更多,Max、Min、Sort等.. Dictionary(字典)→非泛型版本是Hashtable
•Key-value Pair 键值对。成语不可以重复,但是解释可以重复。 1 //键的类型,值的类型 2 Dictionary dict1 = new Dictionary(); 3 dict1.Add("01922292929292", 18);//放进去的是一个键值对.. 4 dict1.Add("2291029299029x", 21); 5 dict1.Add("1402293923182x", 22); 6 dict1.Add("22339102213199029x", 41); 7 dict1.Add("121022934121923182x", 22); 8 int age = dict1["01922292929292"];//根据Key找Value. 9 dict1.Remove("1402293923182x");//移除指定Key的值. 10 Console.WriteLine(age); 11 Console.WriteLine(dict1.ContainsKey("2291029299029x")); 12 //判断是否存在key. 返回类型为bool. 13 foreach (string key in dict1.Keys) 14 { 15 //类似于SQL 的select *from ......where id=@Id 16 int value = dict1[key]; 17 Console.WriteLine("{0}={1}",key,value); 18 } 19 Console.ReadKey(); 20 21 }

Tags:  泛型方法 泛型编程 泛型集合 java泛型 泛型接口

延伸阅读

最新评论

发表评论