CTS、CLI、CLS和CLR

CTS、CLS和CLR是.Net框架的基本概念,但往往成为程序员忽视的部分。

CLR即Common Language Runtime, 可以把CLR理解为一个包含运行.Net程序的引擎和一些符合公共语言基础结构的类库的集合。它是一个规范的CLI实现。所谓的.Net框架一般就是指公共语言运行库。

CLI公共语言基础,是微软向ECMA提交的一份语言和数据格式规范(包括了CTS,中间语言CIL、底部文件格式和元数据格式等),它是目前为止,唯一一个公共语言基础的实现版本。

CTS的全称为Common Type System 通用类型系统。定义了一个能够在CLR上运行的语言规范,需要注意的是,尽管很多语言本省不符合CTS规范,但通过加强编译器,改变语言附加规范等手段,使得许多语言能够编写出在CLR上运行的程序,比如C++

CLS公共语言规范是CTS的一个子集,它定义了希望编写在.Net平台上运行的程序的语言所需符合的最小的规范。因为.Net允许由不同语言编写的程序一起运行,所以制定出CLS规范。

CLS规范实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

using System;

using System.Collections.Generic;

using System.Text;

[assembly: CLSCompliantAttribute(true)]

namespace example
{

public class CLS
{

private uint i; //私有成员,不违反CLS规范


public CLS()
{

i = 0;

}

static void Main(String[] args)
{

}


public uint GetI() //不符合CLS规范,uint在CLS中无定义
{

return i;

}

}

}
作者

Wu Rang

发布于

2011-05-23

更新于

2021-12-06

许可协议

评论