C#程序的运行机制

C# 程序的运行必须经过编写、编译和运行 3 个步骤:

  1. 编写:是指在 C# 开发环境中进行程序代码的输入,最终形成后缀名为 .cs 的 C# 源文件。
  2. 编译:是指使用 Microsoft C# 编译器 对 C# 源文件编译成中间语言(Microsoft Intermediate Language)。IL 代码和资源(如位图和字符串)存储在程序集中,程序集通常具有文件扩展名 .exe 或 .dll ,具体取决于它们是 应用程序 还是  。 
  3. 运行:执行 C# 程序时,程序集将加载到 CLR。 CLR 会直接执行实时 (JIT) 编译,将 IL 代码转换成特定于处理器的本机代码。

所有的.NET编程语言都被编译成这种被称为中间语言的中间代码,因此虽然最终的程序在表面上仍然与传统意义上的可执行文件都具有 .exe 的后缀名。如果计算机上没有安装.NET SDK,那么这些程序会弹出对话框,要求用户下载.NET SDK。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/csharpe/7839.html

(0)
上一篇 2021年1月3日 02:29
下一篇 2021年1月3日 17:52

相关推荐

  • 托管代码(Managed Code)和非托管代码(Unmanaged Code)的区别

    在公共语言运行时 (CLR) 控制下运行的代码称为 托管代码,不在 CLR 控制下运行的代码称为 非托管代码。 例如,COM、COM+、C++ 组件、ActiveX 组件和 Microsoft Windows API 都是非托管代码。

    C#经验 2022年1月10日
    0780
  • packages.config、project.json、PackageReference的区别

    packages.config、project.json、PackageReference都是 维护项目中使用的包列表。 packages.config NuGet 1.0+开始加入的功能。 project.json NuGet 3.x+开始加入的功能,旨在取代 packages.config,但在 NuGe…

    C#经验 2021年9月29日
    01420
  • C#语言的反射(Reflection)

    反射提供了一种Type类型的对象,此对象描述了程序集、模块和类型。可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后调用其方法或访问器字段和属性。 如果代码中使用了特性,可以利用反射来访问它们。 下面一个简单的反射示例,使用方法 GetType()(被 Object…

    C#经验 2021年5月5日
    01390

发表评论

登录后才能评论