基元类型:
编译器直接支持的数据类型称为基元类型(primitive type)。基元类型直接映射到Framework类库(FCL)中存在的类型,如c#中的int直接映射到System.Int32类型。 有些人提倡全部使用FCL.
*CTS Common Type System:完整描述了运行库所支持的所有可能的数据类型和编程结构,指定了这些实体之间如何交互,也规定了它们在.NET元数据格式中的表示。
CTS包括5种基本类型:class, interface, enum, delegate and struct
CTS可能的成员:构造器,终结器,静态构造函数,嵌套类型,运算符,方法,属性,索引器,字段,只读字段,常量,事件
*CLS – Common Language Specification
定义了一个让所有.NET语言都支持的公共类型和编程结构的子集。这个可以说是所有语言特性的一个子集,而CTS是所有语言特性的一个合集。
CLS定义了一套规则,当程序完全遵守这套规则时,才能确保你的程序能被所有其它.NET语言正确调用。可以通过特性[assembly: System.CLSCompliant(true)]来进行CLS规则验证。
* CLR支持两种类型:引用类型和值类型。任何称为“类”的类型都是引用类型,结构或是枚举为值类型,结构直接派生自抽象类型System.ValueType,而它又直接派生自System.Object。所有枚举类派生自System.Enum
C#的基元类型和FCL以及CLS的部分关系。从下面的表中可以看出:
C# Primitive Typ |
FCL Type |
CLS-Compliant |
sbyte |
System.SBte |
NO |
byte |
System.Byte |
YES |
short |
System.Int16 |
YES |
ushort |
System.UInt16 |
NO |
int |
System.Int32 |
YES |
uint |
System.UInt32 |
NO |
long |
System.Int64 |
YES |
ulong |
System.UInt64 |
NO |
char |
System.Char |
YES |
float |
System.Single |
YES |
double |
System.Double |
YES |
decimal |
System.Decimal |
YES |
string |
System.Strign |
YES |
object |
System.Object |
YES |
dynamic |
System.Object |
YES |