基元类型、FCL及CLS

基元类型:

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

原文地址:https://www.cnblogs.com/nygfcn1234/p/3410766.html