摘要: 泛型的目的:代码重用。List这里的T就是个占位符。Type Parameters类型参数。泛型,在.net2.0本本才开始引入的。泛型类,泛型方法,泛型委托。自定义泛型类:1.索引器public class ClassMyList{int[] arrInt=new int[]{1,2,3,4,5,6,7};public int this[int index]{ get{return arrInt[index];} set{arrInt[index]=value}}}2.自定义泛型:public class ClassMyList{public ClassMyList(int len){ ar 阅读全文
posted @ 2013-08-18 10:41 黄飘龙 阅读(191) 评论(0) 推荐(0) 编辑
摘要: CLR的一个核心功能:垃圾回收。垃圾回收的目的:提高内存利用率。垃圾回收器,只回收托管堆栈中的内存资源,不回收其他资源(数据库连接、文件句柄。网络端口等)。什么样的对象才会被回收?:没有变量引用的对象。什么时间回收?:不确定,但是也可以手动调用垃圾回收器:GC.Collect();但是不建议使用。调用效率低~垃圾回收器中“代”的概念:共3代:第0代、第1代、第2代。各代的回收频率:第0代最高,其次第1代,再次第2代。也就是说越老的对象生存几率越大。(c++中叫析构函数)c#叫Finalize函数:~类名(){方法体;}。在当前对象被垃圾回收之前会调用这个函数释放其他资源。这个是不能手动调用的。 阅读全文
posted @ 2013-08-18 10:40 黄飘龙 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 字符串特性:~1不可变性~2字符串池(字符串常量才有,变量没有)~3字符串留用(少用,知道就好)string.Intern(留用的字符串);string.IsInterned(字符串A)判断是否字符串留用是否有这个字符串A。由于字符串的不可变性所以在字符串拼接的时候通常使用StringBuilder代替String类,最后在调用ToString(),在转换为string类型。判断对象是否相同:字符串是不能用Equals(),来判断两个字符串是不是两个对象。因为string类型的Equals()重写了,只要两个字符串的字符完全相同(EqualsHelper())或者两个字符串是同一个对象(Obj 阅读全文
posted @ 2013-08-18 10:39 黄飘龙 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 接口特点总结:(没有构造函数所以没有字段)1.接口是一种规范。为了多态。2.接口不能被实例化3.接口中的成员不能加“访问修饰符”,接口中的成员的冯文修饰符为public,不能修改(默认为public)。4.接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)。5.接口中只能有方法、属性、索引器、事件不能有“字段”。6.接口一接口之间可以继承,并且可以多继承。7.实现接口的子类必须实现该接口的全部成员。8.一个类可以同时继承一个类并且实现多个接口,如果一个子类公式继承了父类A,并且是吸纳了接口IA,那么在语法上A必须写在IA的前面。class MyClass:A,IA{},因为 阅读全文
posted @ 2013-08-18 10:38 黄飘龙 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 开放封闭原则(对修改封闭,对扩展开放。)多态作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。里氏替换原则:需要一个父类类型的对象的时候,可以给一个子类类型的对象。判断对象是否是某个类然后转换类型:if(对象 is 类){类 变量=(类)对象};或者通过as进行类型转换,如果转换失败则不报异常。只会返回null:类 变量=对象as类。【推荐使用as进行转换,这里只进行了一次类型判断。而前一种进行了两次的类型判断】。object是没有父类的。object.BaseType返回null。~1抽象方法不能有任何方法体(大括号内 阅读全文
posted @ 2013-08-18 10:37 黄飘龙 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 面向对象的三大特性:封装、继承、多态。封装:把变化的东西封装起来,保留对用户的统一的接口。(属性封装了字段,方法的多个参数可以封装成一个对象,一堆代码封装到方法中,将一些功能封装到类中或者封装到接口中,多个类文件封装成一个exe的程序集)File.WriteAllText(@“路径”,值);File.ReadAllText(@“路径”);cboName.Items.Add("值");cboName.SelectedItem表示当前选中项(注意:当前选中项如果是对象那么此时就表示那个对象);cboName.SelectedValue和cboName.SelectedValue 阅读全文
posted @ 2013-08-18 10:36 黄飘龙 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 《c#图解教程》 《c#入门经典》 《CLR cia c#》ctrl k c注释 ctrl k u取消注释///注释 在智能提示的时候会有说明ctrl r e 字段到属性自动生成ComboBox属性:DropDownStyle:DropDowmList只能在下拉菜单中选择cboName.Selectedindex=0 选中下拉菜单首项 btnName.Text 取内容 cboName.Text 取内容C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe 编译器配置环境!!!相当于设置了一个地址池当程序要运行时会自动先查找环境变量里头地址。JIT:jus 阅读全文
posted @ 2013-08-18 10:35 黄飘龙 阅读(238) 评论(0) 推荐(0) 编辑
摘要: delegate是个类,委托也是个类,可以通过delegate来定义一个委托,然后通过委托声明一个委托变量(也称委托对象),而事件呢,它就是个对象!!通过反编译可以看到事件本身是一个私有的委托变量加上两个公有的方法,在公有方法中对这个私有的变量作赋值等操作。从而避免了在声明这个事件的类的外部去触发它(这个事件),也避免了赋值时候方法的覆盖。如果不好理解的话可以对应的怎么理解,在类中声明一个私有的字段(private int age),那么用来声明这个字段的类型(比如int)可以类比委托,而和这个字段相关联的属性(public int Age{get;set;})Age类比事件,那么普通的委托变 阅读全文
posted @ 2013-05-21 14:29 黄飘龙 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 1 use cstn 2 go 3 --建立一个check约束 4 alter table Student add constraint CK_Studetn_tSAge check(tsage between 0 and 100) 5 go 6 7 --对貂禅的年龄进行修改 8 update Student set tSAge=19 where tSId=9 9 go 10 11 --select语句的执行过程 12 select tsgender,count(1)--5从分完组的并经过筛选的结果中,取得能够得到列,构成新的结果集 13 from student ... 阅读全文
posted @ 2013-05-21 13:23 黄飘龙 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 1 --建数据库 2 create database cstn 3 on primary 4 ( 5 size=10mb, 6 maxsize=100mb, 7 filename='d:\db\cstn.mdf', 8 name='cstn', 9 filegrowth=100%10 )11 log on 12 (13 size=10mb,14 maxsize=100mb,15 filename='d:\db\cstn.ldf',16 name='cstn_log',17 filegrowth=10mb18... 阅读全文
posted @ 2013-05-21 13:15 黄飘龙 阅读(289) 评论(0) 推荐(0) 编辑