目录

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;

		}

	}

}