C#中程序结构关键概念为“程序、命名空间、类型、成员和程序集”。
程序包含一个或多个文件,程序中声明类型,类型包含成员并被组织到命名空间中,编译时程序被打包到程序集中。程序是.exe或.dll取决于实现为应用程序还是类库。
程序集包括中间语言指令形式的可执行代码,以及元数据形式的符号信息,执行前中间语言指令代码被.net的CLR自动转换成处理器代码。
C#中有两种类型:值类型(value type)和引用类型(reference type)
值类型:简单类型 {有符号类型、无符号类型、Unicode字符、IEEE浮点型、高精度小数、布尔型}
枚举类型
结构类型
引用类型:类类型 {最终基类、Unicode字符串、用户自定义类型}
接口类型
数组类型
委托类型
1.类类型定义了一个数据结构,它包括数据成员(字段)和函数成员(方法、属性)。类类型支持继承和多态,即派生类能够扩展和特殊化基类的机制。
2.结构类型与类类型相似,表示带有数据成员和函数成员的结构。与类类型不同的是,结构类型是值类型,不需要堆分配。结构不支持用户指定的继承,所有结构类型隐式的继承类型Object。
3.接口类型定义了一个约定,作为一组函数成员命名的集合,实现接口的类或结构必须提供接口函数成员的实现。接口可以从多个基接口继承而来,类或结构也可能实现多个接口。
4.枚举类型是带有命名常量的独特类型。每个枚举类型有一个底层的类型,必须是8个整形类型之一。枚举类型的值集与底层值集相同。
5.委托类型通过特定的参数列表和返回类型表示对方法的引用。委托将方法处理为实体。实体能够赋值给变量,当做参数传递。类似于方法指针,不同的是委托是面向对象的,且类型安全。
值类型的值通过装箱(boxing)、取消装箱(unboxing)处理为对象。
int i = 123;
Object o = i; //装箱
i = (int)o; //取消装箱
try-catch 捕捉在块执行期间发生的异常;try-finally 指定一个终止代码块,不管异常出现与否总被执行。
checked 和 unchecked 用于控制整形算术运算和转换的溢出检查上、下文。
int i = int.MaxValue;
checked {
Console.WriteLine(i + 1); //异常
}
unchecked {
Console.WriteLine(i + 1); //溢出
}
lock 语句用于获取给定对象的互斥锁,执行语句,然后释放该锁。
using 语句,用于获取一个资源,执行一个语句,然后处理该资源。
-The End-
© Jervis