C#学习笔记【1】

.NET缩写

.NET缩写

.NET框架的组成

在这里插入图片描述
CLR:公共语言运行库

  • 内存管理
  • 代码安全验证
  • 代码执行、线程管理及异常处理
  • 垃圾收集

BCL:基类库是.NET框架使用的一个大的类库

编译成CIL

.NET语言 的编译器接受源代码文件,并生成名为程序集的输出文件。
编译过程

  1. 程序集要么是可执行的,要么是DLL
  2. 程序集里的代码并不是本机代码,而是一种名称为CIL(Common Intermediate Language)的中间语言。
  3. 程序集包含的信息中,包括下列项目:
    • 程序的CIL
    • 程序中使用的类型的元数据
    • 对其他程序集引用的元数据

编译成本机代码并执行

程序的CIL直到它被调用运行时才会被编译成本机代码 在运行时,CLR执行下面的步骤

  1. 检查程序集的安全特性
  2. 在内存中分配空间
  3. 把程序集中的可执行代码发送给定时(JIT)编译器,把其中的一部分编译成本机代码.

程序集中的可执行代码只在需要的时候由JIT编译器编译,然后它就被缓存以备在后来的程序中执行。使用这个方法意味着不被调用的代码不会被编译成本机代码,而且被调用的代码只被编译一次。一旦CIL被编译成本机代码,CLR就在它运行时管理它,执行像释放无主内存、检查数组边界、检查参数类型和管理异常之类的任务。有两个重要的术语。
托管代码:为.NET框架编写的代码称为托管代码,需要CLR
非托管代码:不在CLR控制之下运行的代码,比如Win32 C/C++ DLL,称为非托管代码。

CLR

.NET框架的核心组件是CLR,它在操作系统的顶层,负责管理程序的执行。提供:自动垃圾收集,安全和认证,通过访问BCL得到广泛的编程功能,包括如Web服务和数据服务之类的功能。
编译期和运行期过程概览

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值