多语言展示
当前在线:901今日阅读:60今日分享:41

如何理解C#与CLR的关系

可能大家对CLR会有一点抽象对吧,不知道是如何运作的,接下来文章可以让大家简单了解一下机制!
方法/步骤
1

一:CLR:和Java虚拟机一样也是一个运行时环境,在运行时有一些功能(内存管理、安全性、异常处理、线程)是由CLR完成的。CLR不是单独为某一种语言存在的,而是面向CLR所有语言的使用,只要编译器是面向CLR的都可以

2

二:接下以"C#"为题,讨论CLR的作用,这么更容易让读者理解!当你在面向CLR的编译器中运行C#应用时,会发生如下步骤:1.C#源代码文件 2.C#编译器 3.托管模块(中间语言(IL)和元数据)记得IL是和元数据在一起的,接下来先简单了解 IL和元数据是什么,一步步来,就你会了解里面的机制

3

三:IL:(中间语言):从字眼上可以知道,中间语言就是基于源代码和目标语言之间对吧,因为C#的源代码不能直接给机器识别的,这时候就出现来IL,那么先把C#源代码编译成IL,再由IL编译可执行的代码。(C#的两次编译原理)元数据:元数据主要有两种表示:一种描述源代码中定义的类型和成员,另一种描述源代码引用类型和成员,简单来说就是一个数据表的集合那么元数据是一个怎么样的一个机制呢?如下

4

四:当我们在写C#代码的时候,需要引用一些引用类型、成员等数据,这些是从哪里来的呢?是编译器直接从托管模块读取元数据的。也就是说: 读取时:元数据->面向CLR的编译器(元数据的数据代码编译成编译器可识别的语法进行编程 如:C# VB等) 运行时:1.源代码文件 2.编译器 3.托管模块(中间语言(IL)和元数据)以上只是简单帮助入门了解一下而已,至于深入了解还得继续学习呢

推荐信息