.NET Framework 平台构造基础

时间:2023-03-09 17:01:22
.NET Framework 平台构造基础
  • CLR 公共语言运行库

执行给定编译代码单元所需的外部服务集合,它提供了一个定义明确的运行库层,可以被支持.NET的所有语言和平台所共享。

      • mscoree.dll:公共对象运行库执行引擎

当用户程序引用一个程序集时,这个库将首先自动加载,然后由它负责将需要的程序集导入内存。

        • 工作流程

.NET Framework 平台构造基础

  • CTS 公共类型系统

CTS是一个正式的规范,它规定了类型必须如何定义才能被CLR承载。

    • 类类型

这是OOP的基础,由成员和数据组成

      • 特征
        • 是否密封
        • 是否实现接口
        • 是具体的还是抽象的
        • 可见性
      • 语法
class Calc{……}
    • 接口类型

由抽象成员定义所组成的一个具名集合,通过特定的类或结构来实现。

      • 语法
public interface IDraw{void Draw()}
    • 结构类型

可以看做是具有语义的轻量级类类型,适用于建模几何和数学数据

      • 语法
struct Point{……}
    • 枚举类型

是一种便利的编程结构,用来组成名称/值对。

      • 语法
enum CharacterType
{Wizard = 100,Thief = 200}
    • 委托类型

等效于类型安全的C风格的函数指针。派生自System.MulticastDelegate类,而不是简单的指向原始内存地址的指针,为.NET事件架构提供了基础。

      • 语法
delegate int BinaryOp(int x,int y);
    • 类型成员

类型成员是集合

      • 组成
        • 构造函数
        • 终结器
        • 静态构造函数
        • 嵌套类型
        • 操作符
        • 方法
        • 属性
        • 索引器
        • 字段
        • 只读字段
        • 常量
        • 事件
      • 可见性
        • 公共的
        • 私有的
        • 受保护的
    • 内建数据类型
CTS数据类型 C#关键字 CLI关键字 备注
System.Byte
byte unsigned char  
System.SByte
sbyte signed char  
System.Int16
short short  
System.Int32
int int or long  
System.Int64
long _int64  
System.UInt16
ushort
unsigned short
 
System.UInt32
uint
unsigned int or unsigned long
 
System.UInt64
ulong
unsigned _int64
 
System.Single
float Float  
System.Double
double Double  
System.Object
object object^  
System.Char
char wchar_t  
System.String
string String^  
System.Decimal
decimal Decimal  
System.Boolean
bool Bool  
  • CLS 公共语言规范

它清晰的描述了支持.NET的编译器必须支持的最小的和完全的特征集,可以被基于.NET平台的其他语言用统一的方式进行访问。

    • 规则
      • 规则1:CLS规则仅适用于类型中向定义它的程序集以外公开的部分。
  • BCL 基础类库
.NET Framework 平台构造基础