接口,常用接口,列表ArrayList,泛型,Dictionary(字典)-----未完待续
时间:2011-06-09 来源:八-戒
接口
接口相当于没有方法实现的抽象类.
接口中能声明:方法,属性(属性本质是两个方法),索引器,不能声明字段.
常用系统接口
*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<T>。List<int> 除此之外并无不同,<int>表示List中放的数据类型是int类型的,因为有声明类型时的约定,因此所有方法的参数、返回值都是确定类型的了。
List<int> 实现了IEnumerable<int>(泛型版本的IEnumerable)、ICollection<int> (泛型版本的ICollection) 。
所有的List<T>所有的方法也都是泛型的,范型的集合提供的方法更多,Max、Min、Sort等..
Dictionary(字典)→非泛型版本是Hashtable •Key-value
Pair 键值对。成语不可以重复,但是解释可以重复。
public interface Flyable接口方法不要public.(为什么不能用private,public,因为如果能private,那么这个方法只有自己能调用,然后自己又实现不了代码,木有意义). 1.一个类只能继承自一个类.但是可以实现多个接口. 2.一个抽象类中可以定义实现的代码,但是接口不能定义实现代码(哪儿怕方法只是一个空的括号,也是空实现). 3.接口的多态特性,类型转换,is,as和类基本一样. *抽象类定义的是公共的实现和能力,接口只能定义公共的能力. *接口相当于给类打一个标签,标志这个类有这种能力.
{
void Flay();
}
接口中能声明:方法,属性(属性本质是两个方法),索引器,不能声明字段.
常用系统接口
*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<T>。List<int> 除此之外并无不同,<int>表示List中放的数据类型是int类型的,因为有声明类型时的约定,因此所有方法的参数、返回值都是确定类型的了。
List<int> 实现了IEnumerable<int>(泛型版本的IEnumerable)、ICollection<int> (泛型版本的ICollection) 。
所有的List<T>所有的方法也都是泛型的,范型的集合提供的方法更多,Max、Min、Sort等..
Dictionary(字典)→非泛型版本是Hashtable •Key-value
Pair 键值对。成语不可以重复,但是解释可以重复。
1 //键的类型,值的类型
2 Dictionary<string, int> dict1 = new Dictionary<string, int>();
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 }
相关阅读 更多 +