C# 语言规范学习笔记(一)

目录
  1. object是所有类型的基类,所有类型都继承这一个唯一的跟类型。

  2. 利用命令行编译

输入命令 csc hello.cs 编译后将生成hell.exe的可执行程序集。

  1. 实例可以利用关键字 this来引用特定的封闭对象实例,静态方法不需要引用特定对象

  2. 利用命令行编译为库

输入命令 csc /t:library acme.cs 将产生acme.dll程序集。

  1. 程序集包含中间语言(Intermadiate Language,IL)指令形式的可执行代码和元数据(metadata)形式的符号信息。

  2. .net公共语言运行库的实时编译器(JIT)将程序集的IL代码 自动转换为特定于处理器的代码。

  3. 编译test.cs 使用来自acme.dll程序集

输入命令 csc /r:aacme.dll test.cs 将产生test.exe的可执行程序集。

  1. C#的类型分为两种:引用类型(reference type)和值类型(value type)

值类型的变量直接包含它们的数据

引用类型的变量存储对它们的数据的引用,引用类型称为对象。

  1. 对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能影响另一个变量所引用的对象。对于值类型,每个变量都有它们自己的数据副本(除 ref 和 out 参数变量外),因此对一个变量的操作不可能影响另一个变量。

  2. C# 的值类型进一步划分为简单类型 (simple type)、枚举类型 (enum type) 和结构类型 (struct type),C# 的引用类型进一步划分为类类型 (class type)、接口类型 (interface type)、数组类型 (array type) 和委托类型 (delegate type)。

下表为 C# 类型系统的概述。

类别说明
值类型简单类型有符号整型: sbyte, short, int, long
无符号整型: byte, ushort, uint, ulong
Unicode 字符: char
IEEE 浮点型: float, double
高精度小数: decimal
布尔型: bool
枚举类型enum E {…} 形式的用户定义的类型
结构类型struct S {…} 形式的用户定义的类型
引用类型类类型所有其他类型的最终基类: object
Unicode 字符串: string
class C {…} 形式的用户定义的类型
接口类型interface I {…} 形式的用户定义的类型
数组类型一维和多维数组,例如 int[] 和 int[,]
委托类型delegate T D(…) 形式的用户定义的类型