看了李建中的C#2.0 锐利体验系列课程(3):局部类型、空属类型、静态类 (Level 300)的笔记
局部类型(Partial):可以将一个类分成几个部分,在几个文件中实现,也可以在一个文件中实现。但是对于编译器来说,看到的只是一个类。
//这是一般写法,不用局部类型法
Calss App{
Public void Foo(){……}
……
Public void Bar(){……}
}
//用局部类型法
Partial class App{
Public void Foo(){……}
}
Partial class App{
Public void Bar(){……}
}
//编译器看到的还是一般写法的App类
Partial只有和calss,struct,interface放在一起才有效。
就像vs中将编译器自动生成的代码和需要手工编写的代码分开处理,也是用了局部类型的概念。
************************
空属类型。可空类型。允许一个值类型具有“空值”意义。类型后加一个?
Int? x = 1;
Int? y = null;
Int? z = x+y;
Z的值是null
如果int x;
int? y;
x.Equals(y)返回true;因为编译器会自动把int x转化为int? x。
空属类型是一个泛型类型,System.Nullable<T>,T必须为值类型。
空属类型若不为空,具有和值类型一样的运算。
空属类型通过hanvalue方法判断是否为空,若不为空,可以通过value属性取值。
int?x=null;
//运用??运算符,取可空类型的值类型的默认值
int y = x?? + 1;
非可空类型y的值为1。取可空类型x的值类型的默认值0计算。
***************************************************
静态类static class,就是把一些全局变量和全局函数包含进去。这个类不能被实例化,也不能被继承。只能包含静态的成员。类的静态的方法可以直接用"类名.方法名"来调用,不用生成类的实例再调用。