C#基础知识之三
1、 程序集间的继承:基类必须被声明为public、必须在工程中包括对该基类的程序集引用。
2、 对其他程序集引用和增加对using指令的区别:前者是告诉编译器所需的类型在哪里被定义,后者为了不必使用它们的完全限定名称。例子:对Mydll调用
3、 成员访问修饰符protectedinternal是对所有继承该类或在该程序集内声明的类可访问。即为protected和internal的并集而不是交集。
4、 抽象成员:用abstract标记,没有实现代码块,由分号代替。
5、 抽象类只能被用作其他类的基类,不能创建抽象类的实例。
6、 密封类:只能被用作独立的类,不能被用作基类,用sealed修饰符。
7、 静态类:用static标记,类所有成员必须是静态的,可以有一个静态构造函数,不能被继承,他们是密封的。
8、 扩展方法:扩展方法必须被声明为static,所在类也必须为static,扩展方法必须包含关键字this作为它的第一个参数类型,并在后面跟着所扩展类的名称。例:
static class ExtendMyData//必须是一个静态类 { public static double Average(this Mydata md)//必须是公有的和静态的,关键字this,扩展类的名称Mydata {//……. } }
9、 外部方法:用extern修饰符,在用分号取代实现;声明和实现的连接常常使用DLLImport特性完成。例:获取当前目录的字符串,实现由win32系统调用。例子
10、 整数后缀含义:23-整型;23L-长整型;23U-无符号整型;23UL-无符号长整型
11、 实数后缀含义:236F-浮点型float;236.714-不带后缀是双精度型double。
12、 字符含义:由单引号内的字符表示组成。
13、 字符串含义:由双引号标记。分为规则字符串和逐字字符串,后面指双引号内的所有字符包括转义的都被严格按序列打印,唯一例外是相邻的双引号被解释为单个双引号,后者方法在字符串前加@前缀。
14、 二元运算符是左结合的。赋值运算符和条件运算符是右结合的。(左结合从左向右运算。)
15、 比较分深比较和浅比较,常用的==为浅比较。
16、 递增和递减运算:语句执行之后,最终存放操作数的值是相同的,唯一不同的是返回给表达式的值。在前为先赋值后计算,在后为先计算后赋值。
17、 条件逻辑运算符:与&&(两true为true); 或||(一true为true);非!(结果相反)。
18、 在条件运算与(&&)操作中使用“短路”模式,只要第一个操作数为false,第二个操作数将不会被计算。所以在第二个操作中不要带有操作行为。