基元类型:
编译器直接支持的数据类型称为基元类型(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 |