第一个C#程序和.NET框架分析

第一个C#程序

创建一个C#项目

首先我们打开VS编辑器,选择 “文件-新建-项目” ,在弹出的弹框中选择 控制台应用(.NET Framework),然后输入名称、位置和解决方案名称 , 点击 “确定” 创建项目

注意:关于弹框中的其它选择,例如:控制台应用(.NET Core)、WPF应用等,感兴趣的话可以去搜索一下,这里目前学习使用 “控制台应用(.NET Framework)”即可。

创建新项目-选择项目模板
创建新项目-配置新项目

其中项目名称、位置、解决方案名称不建议使用中文、框架目前使用.NET Framework 4.6

创建完成

这开发工具为我们创建好的 基本框架结构。

其中 static void Main(string[] args){} 是程序的入口点创建完成后的效果

输入代码并运行程序

static void Main(string[] args){} 中输入
Console.WriteLine("Hello Word!"); 然后点击工具栏中的“启动”按钮(或者按快捷键“F5”),即可运行程序、查看输出结果。
输入代码,启动编写的程序

注意: 在C#中, 严格区分大小写!

程序运行结果

程序运行结果

.NET框架分析

现在我们就可以看到运行结果了,但我们现在还不是很清楚编辑器到生成程序、然后运行程序,中间后台到底发生了哪些变化 ,或者说做了哪些工作,那么我们接下来看一下到底是怎样工作的。

首先,我们先打开程序所在的文件夹,我们可以通过:鼠标右击“项目名称”,然后在弹出的选项中选择“在文件资源管理器中打开文件夹” 来快速打开程序所在的文件夹。
打开程序所在的文件夹
打开程序所在的文件夹
打开程序所在的文件夹
找到当前文件夹–>“bin”–>“Debug”文件夹,这里面有个 文件名.exe 文件,那么这个exe文件它里面是什么样子的呢,我们可以使用微软提供的一个特殊的工具来查看它。
找到程序运行目录

这个工具叫做IL DASM
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools
在上面这个目录(可能有所出入),一般都可以找到这个程序

ILDasm程序位置

这就是IL DASM程序

IL DASM程序运行后图片

打开IL DASM程序,然后将刚才 exe 文件拖放到该程序中,然后我们可以发现会得到以下的一个属性目录,其中有个叫Main,这个其实就是咱们所说的方法,这个目录就是对微软中间语言的一个展示,我们可以把它双击打开看一下。

将exe文件拖放到程序中

这里面就是中间语言的语法,如果对这个中间语言感兴趣,可自行学习,这里不再展开详细解释
当然,如果使用VB编程语言编写一个相同的程序,这里也会生成一个基本上完全一样的exe程序
目前我们不用太刻意去深入,我们作为初学者,目前只是需要了解即可

这就是中间语言的语法

在这里插入图片描述

但目前,这个.exe文件并不是直接运行在操作系统上,它其实运行在虚拟机上面
我们使用C#、VB等编程语言编程时,都会被 .NET框架中的公共语言运行库(CLR)编译成中间语言。
公共语言运行库会根据语言的不同类型编译成不同的模块,编译后会生成两种,分别为exe或dll文件(IL中间语言模块)
而且使用VB或C#开发是无缝集成的,我们使用VB开发生成的dll模块,我们使用C#同样可以调用。
虽然已经编译成中间语言,但在我们机器上执行的时候,还是要根据即时编译(JIT),最终将它转换为机器能够执行的机器码。
公共语言运行库(CLR)包含通用类型系统(CTS)和通用语言系统(CLS)
CTS把不同语言之间的数据类型的差别消除掉,都编译成中间语言的数据类型
CLS把不同语言之间的语法的差别消除
基础类库(BCL)是微软所提出的一组标准库,可提供给 .NET Framework 所有语言使用。

在这里插入图片描述

本次博客参考该网址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值