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

相关推荐

  • C#语言的顶级(Top-level)语句

    1.顶级语句原理 从 C# 9 开始,无需在应用程序项目中显式包含 Main 方法。 顶级语句的原理是把Program类中Main方法内的内容抽取出来放到文件的顶层,是一种隐式的入口点方式,顶级语句隐式位于全局命名空间中。具体顺序见下面: 一般情况下,一个项目只能有一个包含Main方法入口点的文件,因此一个项目也只能有…

    C#经验 2022年6月6日
    01130
  • 托管(Managed)代码、非托管(Unmanaged)代码、不安全(Unsafe)代码的区别

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

    C#经验 2022年1月10日
    01940
  • Context.Database.EnsureCreated()与迁移(Migrations)的区别

    情形一 如果找不到数据库,则会自动创建一个数据库并使用测试数据加载。 如果找到数据库,但没有一张表存在,则会自动创建表并使用测试数据加载。 如果找到数据库,表存在但没有数据,则会使用测试数据加载。 情形二 如果找到数据库,具有任何一张表且表中有数据,则不执行任何操作。 情形三 当数据模型(比如添加字段)发生更改时,自然…

    C#经验 2022年6月4日
    0870

发表评论

登录后才能评论