C#基础知识之七
由朱朱编写,转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688
1、 接口是表示一组函数成员而不实现成员的引用类型。
2、 接口声明不包含数据成员,只能包含:方法、属性、事件、索引,这些成员不能包含实现代码,用分号实现,接口名称按惯例从大写I开始。
3、 接口可以有访问修饰符,而接口成员却不可以有。
4、 只有类和结构才能实现接口,实现了接口必须实现接口的所有成员。
5、 类从基类继承并实现接口,基类列表中的基类名称必须放在接口最前面。
6、 接口和as运算符:用as运算符,如果类实现了接口,表达式返回指向接口的引用,否则返回null而不是抛出异常(强制转换时出抛出异常)。as运算符只可以用于引用转换和装箱转换,不能用于用户自定义转换和到值类型的转换。
7、 类和结构可以实现多个接口,实现的接口以逗号分隔。
8、 实现具有重复成员的接口,创建单个成员来满足所有包含重复成员的接口。
9、 接口可以继承接口,继承接口可以有多个,结果接口包含它声明的所有接口和所有基接口的成员。
10、 Checked和unchecked运算符控制表达式的溢出检测上下文。前者检测溢出CLR会抛出OverflowException异常,而后者不会。
11、 Checked和unchecked运算符用于圆括号内的单个表达式,Checked和unchecked语句执行相同的功能,但控制一块代码的所有转换,可以被嵌套在任意层次。
12、 引用转换:由引用保存的那部分信息是它指向的数据类型、引用转换接受源引用并返回一个指向堆中同一位置的引用,但把引用标记为其他类型。
13、 隐式引用转换:所有引用类型可以被隐式转换为object类型,任何类型可以隐式转换到它继承的接口。
14、 装箱是一种接受值类型的值,根据这个值在堆上创建一个完整的引用类型对象并返返回对象引用的隐式转换。
15、 在装箱产生之后,有两份值:原始值类型和副本的引用类型,每一个都可以独立操作。
16、 拆箱是把装箱后的对象转换回值类型的过程。拆箱是显示转换。
17、 Is运算符是来检查转换是否会成功完成,从而避免盲目尝试转换。只可以用于引用转换以及装箱和拆箱转换,不能用于用户自定义转换。
18、 泛型:可以重构代码并且额外增加一个抽象层,数据类型的抽象,专门为多段代码在不同的数据类型上执行相同的情况专门设计的。
19、 声明泛型类:在类名之后放置一组尖括号,在括号中用逗号分隔的占位符字符串来表示希望提供的类型,在主体中使用类型参数来表示应该被替代的类型。
20、 泛型约束使用where子句列出,在尖括号之后列出,它们不使用逗号或其他符号分隔,可以以任何次序列出。
21、 每个约束的类型参数有自己的where子句,形参有多个约束,它们在where子句中使用逗号分隔,第一位放置主约束。
由朱朱编写,转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688