Visual Studio 2019 C#零基础入门:从项目文件到第一行代码
2026/9/18 12:26:37 网站建设 项目流程

很多人学编程,第一关其实不是语法,是那一堆看不懂的窗口和按钮。双击一个图标,弹出一个密密麻麻的界面,左边是代码,右边是文件列表,底下还有一堆输出信息——正常人第一反应都是懵的。C#编程入门第一课,既然要讲Visual Studio 2019的使用,我们就别上来就背概念,直接把工具用起来,把cs文件、项目文件、运行按钮这些看似吓人的东西一个一个拆开看。这篇文章适合完全零基础、连“编译”和“运行”都分不清的新手,也适合以前学过一点但始终没搞懂Visual Studio在干嘛的同学。目标是:看完这一篇,你能自己从头新建一个项目,写两行最简单的C#语句,顺利运行出结果,并且顺手把显示行号、设置字体这些小配置弄好。

1. 装环境之前,先把“编译型语言”这件事想明白

很多人装了Visual Studio 2019,打开之后发现要等很久,新建项目时又蹦出一堆选项,瞬间就劝退了。这些麻烦的根源,都在于C#是编译型语言。你写的代码不能直接让电脑执行,得先经过一道翻译工序。弄懂这一点,后续所有操作你就都能理解为什么这么设计了。

1.1 为什么第一课就要讲编译这件事

我用生活里的例子解释。你写了一篇菜谱,用的全是中文,步骤写得再清楚,一个只会英文的外国厨师也看不懂。你需要先把菜谱翻译成英文,他才能照做。C#就是你的中文菜谱,电脑CPU这个“厨师”只懂机器语言(一连串的0和1),中间的翻译官就是C#编译器,它负责把C#代码翻译成电脑能执行的指令。

这一课里你写下的每一行代码,最终都要走这条路:C#源码 → 编译器翻译 → 生成可执行文件 → 运行。Visual Studio 2019就是这套流水线的总控制台,它把代码编辑、编译、调试、运行这些工具都整合在一个界面里。所以你在网上看到有人说“我用记事本也能写C#”,这话没错,但就像有了自动挡汽车你非要手动挂挡一样,自虐罢了。

明白了这个流程,你就能理解下面这些常见的困惑了:

  • 为什么运行前要点“生成”或者“启动”——因为这就是在执行翻译工序。
  • 为什么程序运行后能在bin文件夹里找到一个.exe文件——那就是翻译完成的成果。
  • 为什么代码写错了点运行会报错——编译器在翻译时发现这句话它读不懂,停下来告诉你。

1.2 安装Visual Studio 2019时真正需要注意的选项

网上关于Visual Studio安装的教程多到爆炸,但很多都在讲界面截图,没讲到关键点。我的建议是,下载Visual Studio Community 2019版就好,这个版本对个人开发者、学生是完全免费的,功能上跟付费版做学习用途没有任何区别。

安装时有几个决定性选项,很多人是被卡在这一步的:

工作负载这块,新手通常只需要勾选一个“.NET桌面开发”,就够了。如果是学Web方向,以后可以再补“ASP.NET和Web开发”。千万别一上来把所有工作负载全勾上,一个Visual Studio完整安装占几十G,大多数组件你用不上,还拖慢启动速度。

另外,安装路径建议不要带汉字和空格,比如别装在D:\程序\Visual Studio,最好用D:\DevTools\VS2019这样的纯英文路径。现在很多编译工具对非英文路径的兼容性依然不好,踩坑的人太多了,宁可一步到位。

2. 创建你的第一个C#项目,顺便把“解决方案”拆开看

第一次打开Visual Studio 2019,你会看到一个“开始页”,上面有最近打开的项目,也可以从这里新建项目。但我的建议是,直接点左上角的“文件 → 新建 → 项目”,记住这个路径,以后你80%的工作都是从这儿开始的。

2.1 一个完整的创建操作流程

第一步,文件 → 新建 → 项目

第二步,在模板选择窗口里,左侧选“Visual C#”,然后中间选“控制台应用(.NET Core)”或者“控制台应用(.NET Framework)”。这里我就得说几句实在话了。

Visual Studio 2019这个版本比较特殊,它横跨了.NET Framework和.NET Core两个时代。对新手来说,我建议选控制台应用(.NET Core)(如果你用的版本里叫.NET 5或.NET 6,那也差不多,都行)。好处是部署简单、启动快,而且微软现在的长期方向是.NET Core这条线,学习投入不会白费。

第三步,项目名称填HelloFirstLesson,位置选一个你自己建好的文件夹,比如D:\CSharpLearning。注意勾选“将解决方案和项目放在同一目录中”,这个选项会让项目文件夹结构更简洁,方便你之后找文件。然后点创建。

等你点完创建,Visual Studio会自动生成一堆代码和文件,同时你会在“解决方案资源管理器”面板里看到右侧的文件树。这时候重点来了,新手看到这一堆东西往往会慌。我告诉你,你要关心的就两样:后缀为.cs的代码文件,和后缀为.sln的解决方案文件。其余一大半可以先无视。

2.2 解决方案资源管理器里那些“不认识的东西”

既然标题里提到了“项目文件”,这块必须讲透。我列个表把创建完的项目里最常见的文件和文件夹说清楚,你就不会再迷路了。

文件/文件夹后缀它是干嘛的新手需要动它吗
解决方案文件.sln一个“总收纳盒”,可以放多个项目,负责管理项目的组织关系基本不用动,但别删
项目文件.csproj描述当前项目的配置,引用了哪些库、目标框架是什么版本双击打不开,右键可编辑,但前期别去动
源代码文件.cs你写代码的地方,最多打交道的就是它天天都在动
依赖项/Dependencies项目引用的外部库和框架,比如System命名空间就是从这里引用进来的前期不用看
bin文件夹编译生成的中间文件和最终的exe都在这程序运行异常时再来看
obj文件夹编译过程中的临时文件不用看,删了会自动重建

看到没有,真正属于你“写”的部分,就是那一个.cs文件。其他文件大部分是Visual Studio帮你管理项目结构的,你只要知道它们存在就行。这里面最容易犯的错,是把整个项目文件夹拷给别人之后,别人打开.csproj发现打不开——那是因为他没装对应版本的Visual Studio开发工具。这不叫项目坏了,而是缺少打开它的环境。

3. 分析cs文件的内外构成:从项目文件到那句最简单的代码

现在进入核心环节。双击左侧的Program.cs,你会看到Visual Studio已经帮你生成了这样一段代码。没有代码基础的读者别跳过这段,我一句一句带你看懂。这就是标题里说的“cs文件构成”。

using System; namespace HelloFirstLesson { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }

刚创建完项目就有这么一堆东西,很多人第一次看是懵的。我拆开来讲,并且把层次梳理清楚。

3.1 这堆代码的分工逻辑,用“房子”来理解

我习惯给零基础学员打个比方。整个Program.cs,就像你在规划一栋房子的施工图纸,而你要遵守小区管委会(编译器)给你定下的各种规矩。

  • using System;相当于你跟物业打了个招呼:“我待会儿要用到小区里的公共设施。”System是.NET提供的一个“工具库”,里面有现成的输入输出功能,比如后面我们要用的控制台输出功能,就在它管辖范围内。
  • namespace HelloFirstLesson;是命名空间。打个比方,它就是你是哪栋楼哪一户——C#项目里不同模块可能会定义同名的类,命名空间的作用就是把它们区分开,不打架。你可以把它理解成一个“包裹”,把它下面的代码都装进一个叫HelloFirstLesson的大包里。
  • class Program是类,相当于这栋房子本身。类是C#组织代码的基本单元,Program是这个类的名字。你写的功能代码基本都要待在某个类的“身体”里边。
  • static void Main(string[] args)是整个程序的入口。可以理解成房子的入户大门。C#规定,一个可执行程序至少要有一个Main方法,程序启动时,编译器会从这里往里走。家里来客人,总不能从阳台翻进去,对吧?Main就是正门。这行代码不用背,但必须认识它。

对第一课来说,看懂到这一层就够了。像staticvoid是什么意思,你后面学到方法的时候自然就明白,现在不要太纠结——纠结才是浪费时间。

3.2 那两句最简单的语句,到底在做什么

现在进入标题里说的“两句最简单语句”,也是顶顶重要的实操环节。把光标放在Main方法的花括号里面,把自动生成的Console.WriteLine("Hello World!");改成下面的内容——或者保留也可以,但建议你亲手打一遍,这比复制粘贴能更快建立“手感”。

static void Main(string[] args) { Console.WriteLine("你好,C#!"); Console.ReadKey(); }

我逐词拆解一下。

Console.WriteLine—— 这是“向控制台窗口输出一行文字”的意思。Console就是“控制台窗口”,WriteLine是“写一行并换行”。括号里的内容就是要输出的内容,如果是文字,必须用英文双引号包起来。

注意这个分号。C#里每条完整语句结束时,都要用英文分号;表示这句说完了。这个细节决定了一个新手的代码是“偶尔报错”还是“从不报错”。很多错误提示:“此处需要分号”——就是因为少了它。

第二句Console.ReadKey()是干嘛用的?它是“读取用户按下任意键”的命令。很多初学者会发现,如果代码里只写WriteLine,运行出来一个黑窗口,里面的字一闪就没了。为什么?因为程序执行完最后一条语句后,整个进程就结束了,窗口自动关闭。加上ReadKey(),程序会停在这儿等你按一个键再退出,这样你就能看清输出的内容了。这是新手最需要的“暂停键”,你现在就应该习惯写这句。

我实际带过很多学生的经验是,第一课一定不要贪多,把Console.WriteLineConsole.ReadKey这两句写扎实,你就已经很棒了。它们就像学汉语先学“你好”和“再见”,场景高频,使用了然。

3.3 关于“运行前”:为什么非要先生成一遍

标题里写了“运行前”,这背后有个关键动作——很多人忽略它,导致程序运行失败的诡异事故。你在写代码的过程中,Visual Studio会自动在“错误列表”窗口里帮你做检查。但只有在你点击“生成”或“启动”的时候,真实的编译动作才会发生。

所谓“生成”就是把你的源码变成机器能识别的过程。你可能听到老手口中说的“Build一下”,指的就是这个。你可以点菜单栏的“生成 → 生成解决方案”,也可以直接按快捷键Ctrl+Shift+B

建立这个习惯最大的好处是:在运行前先用生成来检查一遍代码有没有语法错误。这比直接点“运行”,等一个报错弹窗出来要直观和安全得多。我见过不止一位学员,直接点运行,程序报错,他第一反应是“代码写得不对”,其实他只是把引号写成了中文引号而已,编译器在“生成”阶段就能把错误指出来。

我现在要求所有入门学员养成这个习惯:改完代码,先Ctrl+Shift+B生成,再看“错误列表”窗口。这个窗口就在界面下方,双击其中的任意一条错误信息,Visual Studio会直接把你带到出错的代码行旁边。这是全天下程序员每天都在用的排查方式,没有任何神秘感。

4. 运行程序的两种方式:F5和Ctrl+F5到底有什么区别

标题把“运行前”和“运行程序”分成两个阶段来写,是有道理的。运行前解决的是“程序编译是否正确”的问题,而运行时解决的是“程序执行是否符合预期”的问题。Visual Studio 2019提供了几种运行方式,新手很容易被顶部那个绿色三角按钮误导,以为只有这一个“开始”键。

4.1 调试运行是什么逻辑

顶部工具栏上有一个绿色的三角形按钮,写着“开始调试”,旁边还标着快捷键F5。很多新手直接点它,然后程序运行起来了,窗口一闪而过,留下一句“Hello World!”在输出窗口里——然后他不知道发生了什么,就觉得这个工具“很难用”。

实际上,F5是按“调试模式”来运行程序,意思是你告诉Visual Studio:“我打算看着程序一步步执行,检查它的状态。”对你现在这个只有两行代码的程序来说,调试模式有点大材小用,它更适合以后你的程序逻辑复杂了,需要断点、仔细看变量值变化的时候用。

在调试模式下,窗口闪退这个现象很正常——因为程序立刻执行完了,Visual Studio 2019会直切回编辑界面。你看到的现象是“黑框一闪而过”。

4.2 不调试运行(Ctrl+F5)才是第一课最好的选择

运行前一个最重要的技巧来了:如果只是想让程序运行出结果,用“开始执行(不调试)”这个按钮,或者按Ctrl+F5

为什么这个更适合第一课?因为Ctrl+F5运行时会保留那个黑窗口,让你能看到输出结果,而且程序窗口会停在那边,直到你手动按任意键关闭(别忘了我们还有一句Console.ReadKey()在等你按键盘)。这意味着你不用额外设置什么“暂停”或者“断点”,它就是个“老老实实执行完毕就等着你”的姿态,非常适合初学者观察结果。

点击“开始执行(不调试)”按钮或者按Ctrl+F5后,你会看到一个黑色的控制台窗口弹出来,里面显示“你好,C#!”,然后光标停在下一行,等你按键。这时候你应该自信一点:你的第一个C#程序,真正跑起来了。按下任何一个键,窗口会关闭,返回Visual Studio界面。

我把两种运行方式的对比表放这里,方便你以后自己判断该用哪个。

运行方式快捷键窗口表现适用场景
开始调试F5执行完自动关窗口,调试信息保留在输出窗口代码逻辑复杂、要看变量、要打断点
开始执行(不调试)Ctrl+F5执行完窗口会保留,等按键关闭快速看运行结果,第一课首选

4.3 运行完发现界面是英文?不急,那不影响调试

还有一件事值得提醒,虽然属于细节中的细节,但直接影响初体验。刚才那个黑窗口弹出之后,如果你看到的是英文提示,比如“Hello World”,那是正常的,因为控制台程序毕竟是用英文编码为基础的。你要是想让它显示中文,只需要把Console.WriteLine("你好,C#!");里的文字直接改成中文就行,Visual Studio 2019默认会处理好字符编码的问题,正常显示,没有特殊“咒语”要念。这一点对国内学习者很友好,担心中文乱码的同学可以放宽心。

有个小坑必须提一下:如果有一天你自己单独建了一个.cs文件,没有用Visual Studio的项目模板,然后代码里有中文,运行时出现乱码——那不是代码错了,是你的文件编码存成了GBK而不是UTF-8。在Visual Studio 2019里,可以选择“文件 → 另存为 → 保存按钮旁的小三角 → 编码保存”,选UTF-8 with BOM就能解决。第一课还碰不到,但提前知道这回事,以后能省打半天的排查功夫。

5. 把这些设置改掉,Visual Studio会顺手很多

标题里专门提到“显示行号”和“设置字体”,这是新手最容易忽略、但性价比炸裂的两个配置。好的编辑器设置不是锦上添花,而是直接提升你写码速度和准确度的基础工具。

5.1 显示行号的具体操作和原因

代码编辑器的左侧通常会有一个灰色数字栏,显示每行代码的行号。没它的人看这个界面总觉得少了点东西,有的的代码报错时会提示“第5行有错误”,你要是没显示行号,就只能从第一行数到第五行,碰到代码多的时候,数到崩溃。

操作路径是:工具 → 选项 → 文本编辑器 → C# → 勾选“行号”。就这么简单。

勾选完成后,代码编辑区左边会出现一列数字,1、2、3……一直到文件末尾。这个配置建议所有语言都打开,不只是C#,你以后写HTML、JavaScript的时候都用得着。另外,多提一句,如果你在错误列表里双击错误信息,光标会直接跳到出错的那一行,行号此时就是你定位问题的“坐标”。没有坐标,你就是盲人摸象。

5.2 设置字体时,别只看好不好看

字体的设置路径是:工具 → 选项 → 环境 → 字体和颜色

这里面的门道比想象中多。很多新手喜欢把代码字体选成好看的宋体或者雅黑,但编程圈默认的最佳实践是选择等宽字体。什么叫等宽?意思是每一个字符占的宽度都一样。这在代码里有什么好处?想想你写代码时对齐缩进的场景——如果I和M宽度不一样,你很难用肉眼对齐代码,也容易在排查问题时看错字符串里的空格数量。

我的经验推荐,字体选Consolas,字号设在16左右比较舒适。Consolas是微软专门为代码阅读设计的等宽字体,字形的结构和中文搭配比较协调,视觉疲劳也小。字号方面,16号适合在普通分辨率(1080p)屏幕上远距离阅读,如果你屏幕分辨率较高或者喜欢把窗口放大,也可以试试18,但别小于14,太小了伤眼睛。

字体名称一栏还可以直接输入Consolas后用上下键预览。交互实际体验很好,你可以一边预览一边挑。这个配置不会让你的程序跑得更快,但能让你盯屏幕一小时后眼睛少了酸胀感,所以值得花五分钟调整好。

这里我还想多说一句“主题”的问题。Visual Studio 2019默认是深色主题,很多人觉得就叫“暗黑模式”,其实正式名称叫“蓝色”和“深色”。如果你在明亮环境里待得久,深色主题反而会刺眼。你可以通过工具 → 选项 → 环境 → 常规 → 颜色主题切换。选哪个没有对错,关键是让眼睛舒服。我自己写代码时用的深色主题,因为长时间盯着屏幕,深色背景能减少白底的反光刺激。

5.3 这些小配置,害得很多人第一次就放弃

老实说,我见过不少同学卡在字体设置这里折腾了很久,结果把字号改成72,整个编辑器的代码变成几行大字,横竖滚动条来回拖,误以为是自己把程序“弄坏了”。

其实字体设置是很私人的事情,没有绝对标准。第一课阶段,你只要做到两件事就行:一是确认行号显示勾上了,二是把等宽字体选好。其他的配色、缩进、标记之类的高级设定先别碰,等你写过一段时间代码,自然会知道自己喜欢什么,到时候再改也不迟。

这些“份外的事”在教程里经常被一笔带过,但它们恰恰是拖垮新手体验的隐形杀手。你要是从第一课就把工具的舒服度调到位,后面几百节课的编码体验都会跟着好起来。

6. 从第一课到现在,你真正应该带走的东西

写到这里,按理说“C#编程入门第一课”的内容已经讲完了。Visual Studio 2019怎么用,cs文件由哪些部分组成,项目文件里有什么,怎么新建项目,怎么写两句最简单的C#语句,运行前该做什么,运行程序时F5和Ctrl+F5的选择,显示行号和设置字体——标题里要求的内容,全部覆盖了。

但作为一个写了这么多年代码的人,我真诚地觉得,第一课真正重要的不是记住我这里每一个按钮的名字,而是形成三件事的认知:

第一,项目文件、cs文件、解决方案之间的关系。你写的是cs文件,cs文件被项目文件收纳,项目文件又挂在解决方案下面。Visual Studio就是这样一个三层收纳结构。以后你每新建一个项目,都会看到这一模一样的结构,熟悉它比背任何语法都更省心。

第二,“运行”前先“生成”的习惯。这个习惯越早养成越好。Ctrl+Shift+B检查错误,Ctrl+F5看运行结果,这两个动作是C#开发者每天的日常操作,反复做,做到条件反射的程度。

第三,编程的手感不是看出来的。你即使把这篇博文从头到尾看十遍,不亲手在键盘上敲一遍那两行代码,不亲手配置一次字体行号,你依然处于“看不懂”的状态。我个人的深刻体会是:写代码这项技能,手指的记忆比大脑的记忆可靠得多。就像学自行车,理论背得再熟,还是得上脚蹬一圈才会。

最后分享一个我自己的小习惯:学完第一课后,别急着继续往下冲,把新建项目、写代码、运行结果这个过程重复三遍。第三遍时,你闭着眼睛都能找到“新建项目”的菜单路径,那时候你再打开下一节课,感觉会完全不同。编程入门没有那么神乎其神,本质上就是“熟能生巧”四个字,而第一课,就是那个让你开始重复的起点。你的刀已经磨好了,接下来,开始切菜吧。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询