为什么在.net中使用基类库
本文关键字:基类 类库 net 为什么 | 更新日期: 2023-09-27 18:03:35
我对c#程序的执行方式有点困惑。到目前为止我学到的是,
- c#程序+基类库形成源码
- 此源代码提供给c#编译器以转换成msill代码。
- 此MSIL代码被移交给。net框架转换为本机代码。
所以我的问题是为什么我们需要基类在。net框架中,所需的基类已经转换成MSIL代码?
我得到上述过程错误吗?请帮助!我用谷歌搜索了一下,但没有找到。谢谢您的关注!
基类库不是源代码的一部分。这是你的源代码引用的东西,但是c#编译器不会重新编译它。
你搞错了:
- c#代码构成了源代码
- 源代码由c#编译器编译为CIL,并打包在程序集 中。
- 在运行时,您的程序集(以及它引用的任何程序集)由CLR 加载。CLR有一个JIT编译器从CIL生成机器码
- 然后执行生成的机器码
c#程序+基类库形成源代码,然后使用各自的编译器编译源代码。时间:——
每当我们编译用任何。net语言编写的代码时,相关的编译器(如c#,VB编译器)都会生成称为汇编(可能是。dll或。exe)的二进制文件,其中包含MSIL代码或CIL代码。这些指令是低级的人类可读语言,以后可以在第一次执行时通过运行时编译器(JIT,它是CLR的一部分)转换为机器语言。它只是在执行过程中完成的,这样编译器就可以事先知道它将在哪个环境中运行,这样它就可以针对该平台发出优化的机器语言代码。.net框架的这种编译器被称为即时(JIT)编译器或Jitter。
编译器不会重新编译dll或基类库,它们是由你的源代码引用的。
基类库提供了许多接近目标的功能,这就是我们使用它们的原因。