第一部分:专辑说明
这个博客文章的发布原因是自己在复习C#的知识点,这个课程的知识点是完全对应b站唐老狮的课程目录,但是不会按照唐老师的内容去讲解,会添加自己的理解。
特殊说明:实例使用的vs2022版本。
第二部分:正文
1.进入VS:
2.点击右下方创建新项目,并且将搜索模块下方的语言选择C#,点击后显示如下图:
3.点击新建C#控制台程序 -> 点击下一步。
4.我们需要输入项目名称,可以使用自己喜欢的名字 ->点击下一步。
注意:在实际项目中尽量不要使用中文名称!会引起团队合作的编码兼容性问题!在后续我会新开一个文章单独讲解为什么尽量不要用中文名称。
下面还有一个小选项是将解决方案和项目放在同一目录中,这个选项不会影响在开发过程中的使用,只是会改变创建的工程文件的格式,可以看第三部分详细看到选中和不选中的区别。
5.直接按照我的界面选择就可以了。点击下方的创建,就成功创建了项目。
下面的其他选项可以看第三部分详细看到选中和不选中的区别。
第三部分:其他的创建项目时的选项
1.将解决方案和项目放在同一目录中
这是勾选时的项目文件夹放置方式:
这是不勾选时的项目放置方式:
进入项目名称文件夹后可以看到
需要注意的一个小细节是只有选择了这个文件后才可以自定义更改解决方案名称,并且我还特意在创建时把名称改的更加明显。
这里不论是否勾选都是不影响使用的,但是在实际的项目中可能会强制要求使用哪一个方式来创建,这个会有CTO创建,在学习阶段大家勾选这个选项就可以了。
其中sln后缀名是整个项目,cs后缀名的只是这个脚本。我会在下一章再单独讲解上面的两个文件夹和其他的三个不同后缀的文件是干什么用的。
2.框架:
有一个很大的误区:NET是不是就是C#的版本?很明显这个不是对的,我列出了新手最可能遇到的问题,大家可以对照学习。当然C#的版本我有一本很好的书推荐给大家叫做《深入理解C#》,这本书讲解的非常透彻。
| "C# 和 .NET 是同一个东西吗?" | 不是。C# 是语言(怎么说),.NET 是环境(在哪说、谁听)。 |
| "版本号为什么这么像?" | 微软故意让它们同步发布,方便记住。但一个是语法升级,一个是环境升级。 |
| "那我学的时候要区分吗?" | 初学阶段不需要刻意区分。你知道"我装的是 .NET 8.0,写的是 C# 代码"就够了。 |
3.不适用顶级语句
在上面的教学中我就勾选了不使用顶级语句,如果不勾选新建项目之后会是这样的:
顶级语句这个东西一眼看过去有点像py,你的直觉是对的,允许你省略一部分结构,直接开始写。但是还有顶级语句的毛病很多,我这里直接列一个表格,来展示他和py的区别
| 维度 | C# 顶级语句 | Python |
|---|---|---|
| 底层是否有入口函数 | 有,编译器自动生成Main | 没有,文件本身就是顺序执行 |
| 能否定义多个顶级函数 | 一个文件只能有一套顶级语句 | 可以任意写函数和全局代码 |
| 执行顺序 | 从上到下,但只能在一个文件中 | 从上到下,可以跨文件 import |
| 严格意义上更像谁 | 像 C# 帮你"隐藏样板代码" | 像真正的脚本语言 |
眼尖的朋友已经发现了他只能有一个文件,这是因为编译器要文件的顶级语句自动生成main方法。如果有两个,它就不知道该用哪个作为程序入口点了。
4.启用原生 AOT 发布
AOT 是Ahead-Of-Time的缩写,意思是“提前编译”,如果不选择这个选项会使用传统的JIT。
| 编译方式 | 什么时候编译 | 通俗理解 |
|---|---|---|
| 传统 JIT(默认) | 程序运行时,一边跑一边编译 | 像“现场翻译”:你到了某个国家,翻译官才给你一句句翻 |
| AOT(提前编译) | 程序发布时,提前全部编译好 | 像“提前写好翻译稿”:出发前就把所有要说的都翻好了,到了直接念 |
原生 AOT = 提前编译 + 启动快 + 单文件 + 不依赖 .NET 环境,但是它牺牲了反射和动态代码的灵活性。
我们可以看到他不会影响项目的代码结构。
第四部分:结语
下一篇我们会讲解新建项目后的各个文件夹代表着什么。如果这篇文章有错误可以在下方评论,我会积极改正哦!
C#入门篇二 — 工程新建后的各个文件夹是什么?https://blog.csdn.net/ldjt0729/article/details/161979793?spm=1001.2014.3001.5502