奔腾不止
此后如竟没有炬火,我便是唯一的光......
摘要: 阅读全文
posted @ 2020-09-27 22:11 奔腾不止 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 为什么要使用泛型(泛型可以继承的): 1,重用代码; 2,类型安全:编译时检查,尽早暴露问题(相对object而言); 3,提高性能:编译时生成,避免装箱/拆箱; 泛型的类型约束where T: 1,struct:只能是值类型,由struct定义; 2,class:只能是引用类型,class定义; 阅读全文
posted @ 2020-09-27 19:23 奔腾不止 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 委托:对方法的封装 public delegate void Caculate(int a ,int b); --公开的委托,返回类型为void的Caculate(委托名:定义方法类型)的方法,且接受2个int参数; public void Add(int a,int b) { a+=b; } Ca 阅读全文
posted @ 2020-09-27 18:08 奔腾不止 阅读(419) 评论(0) 推荐(0) 编辑
摘要: join: var majors=from m in Majors join t in Teachers on m.Teacher equals t --不能使用== where t.Name='小王' select m; left outer join:左边的集合必须返回,哪怕右边没有匹配到的(没 阅读全文
posted @ 2020-09-27 15:17 奔腾不止 阅读(1277) 评论(0) 推荐(0) 编辑
摘要: Linq:并非只针对于集合,它已作用于数据库,XML文件,WebService......但所有的Linq都使用统一的查询表达式: var excellent=from s in students --students是一个集合,必须是IEnumerable或它的子类 where score>80 阅读全文
posted @ 2020-09-27 14:38 奔腾不止 阅读(180) 评论(0) 推荐(0) 编辑
摘要: string是一个非常特殊的引用类型,不可被继承,因为它有值类型的很多特征: 1,imutable(不可变的):一个string定义的字符串,一旦设定,它将不可改变;string类中,没有任何一个可写的类成员,全是只读的; 2,‘==’比较运算符和值类型设计的一样:比较的是值; 字符串池: 在编译时 阅读全文
posted @ 2020-09-27 13:29 奔腾不止 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 继承不是为了重用,而是为多态做准备; 实例化一个子类,需要调用父类(包括祖先类)构造函数,因为想要使用父类成员(非私有成员),必须调用一次父类构造函数; 当父类中有多个构造函数时,需要在子类构造函数中指明要调用哪个父类构造函数(base(父类构造函数参数)); 多态:同一个变量,调用同一个方法,可以 阅读全文
posted @ 2020-09-27 12:21 奔腾不止 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 静态类中,不能有实例成员,不能继承或者被继承别的类; 静态构造函数必须是无参的,不能通过开发人员调用(由.NET调用,且只调用一次),且不能加访问修饰符,当调new一个对象时,它一定是先调静态构造函数再调实例构造函数; 实例成员可以访问静态成员,但静态成员不能访问实例成员,实例类中可以有实例成员和静 阅读全文
posted @ 2020-09-27 11:01 奔腾不止 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 1,const一旦声明,就要立刻赋值,readonly可以延后到构造函数; 2,const只能是int,boll,string等基本类型,readonly可以是其它类型(Teacher等); 3,const默认为静态,由类名调用,readonly默认实例,由对象调用; const在编译时完成赋值,r 阅读全文
posted @ 2020-09-27 10:20 奔腾不止 阅读(148) 评论(0) 推荐(0) 编辑