笔记--四期
时间:2011-06-09 来源:M_ary
1) 关于Using
1 实现了IDisposeable;接口的对象都可以用Using来释放非托管资源。
2 当出了using的作用域范围后,using会自动调用对象的Dispose方法,注意此时并没有真正的释放;
而是将变量和堆空间里面的值给断开了,而堆空间里面的值需要等待回收器去回收。
2)关于接口:没有实现方法的抽象类
1 接口规范了公共的行为;抽象类规范了公共的行为和公共的实现。
2 接口没有方法的实现,所以父类变量调用方法是,实际上是子类的方法;这是与别的父子类不一样的地方。这也是接口、抽象类多态特性的魅力所在。
3 一个类可以实现多个接口,但是一个类只能有一个父类 class Bird:Flyable,Runnable{}
4 接口中的成员不能有访问级别修饰。
5 Bird的父类是Object;接口是Runnable
object obj = new Bird();
if (obj is Runnable)
{
Runnable r1 = (Runnable)obj; r1.Walk(); //规律:Runnable先看看自己的是否有方法实现,若有就用自己的,否则就用儿子的
} --------------------------------
//Bird的父类是Say ;接口是Runnable;两者并无直接关系,但是通过共有的子类Brid;在强制转换之间发生关系
Say say = new Bird();
if (say is Runnable)
{
Runnable r1 = (Runnable)say;
r1.Walk();
}
2) 常用系统接口
1 IDisposable接口;实现其接口的方法必须定义Dispose方法,很多Dispose的实现大都是调用Close方法。两个方法的区别在于是否可以Open
2 IEnumerable接口,实现了IEnumerable接口的对象都可以使用foreach进行遍历。
3)ArrayList;动态数组;
1 ArrayList arr=new ArrayList(); arr.add(object);
2 移动玩一个元素,下一个元素会跟上。
3 (int);和convert.toInt32();是有区别的。
4) 集合类--ArrayList;HashSet;Hashtable;Dictionary;
1 所有的数组类型int[];string[];都是继承了Array类。
5) 泛型--规范了放入集合中数据的类型
1 List<T>; 有个非泛型版本的List;
2 Dictionary<int,string>;有个非泛型版本的HashTable;
3 HashSet<T>;不能放重复的数据。所以可以判断数组中不重复的数据的个数。
4 Stack<T>;push();Pop();
5 Queue<T>;Enqueue();Dequeue();
6)关于三层;关于代码生成器
1 insert into T_User(name,age)output inserted.id values('wk',12) ;(ExecuteScalar)
2 DAL;(直接操作DB);(操作的是Model实体模型,需要传递的参数也应该是Model);
3 Path.Combine(s1,s2); 会自动为s1添加斜线生成路径;
4 File.WriteAllText("c:\",""); //写入指定文件中;文件不存在会创建文件,可是文件夹不存在则会报错
5 Directory.CreateDirectory("path"); //若文件夹不存在就创建;
6 StringBuild;在处理'\r\n'回车时,异常方便..