
1.4 创建第一个C#控制台(命令行)程序
本节通过创建最简单的C#程序——控制台应用程序来熟悉Visual Studio 2017的开发环境。控制台应用程序是在命令行执行所有的输入和输出,对于快速测试语言功能和编写命令行实用工具都是理想的选择。
(1)单击“开始”“所有程序”
“Visual Studio 2017”,启动 VS2017(Microsoft Visual Studio 2017的缩写)。单击菜单“文件”
“新建”
“项目”,将出现“新建项目”对话框。此对话框中列出了Visual Studio 2017能够创建的不同的默认应用程序类型,如图1-21所示。

图1-21 “新建项目”对话框
(2)选择“控制台应用”作为项目类型,并将应用程序的名称更改为“Hello”。可以使用默认位置,也可以根据需要输入新路径或者单击“浏览”按钮选择合适的位置,之后单击“确定”按钮。
Visual Studio 2017为项目创建以项目标题命名的新文件夹,并打开Visual Studio 2017主窗口,可以在主窗口中输入和修改用于创建应用程序的C#源代码。
“解决方案资源管理器”是非常有用的窗口,用于显示构成项目的各种文件。项目中最重要的文件是Program.cs文件,包含应用程序的源代码。
(3)单击Main方法内的左大括号“{”的右边,按Enter键开始新行。注意观察代码编辑器如何自动缩进。
键入C#类名或关键字时,可以选择自行键入或者让Intelli Sense工具帮助完成。例如,当键入“c”时,将显示一个以字母C开头的单词列表,因为Intelli Sense会尝试预测要键入的单词。在本例中,若看不到单词“Console”显示出来。可以向下滚动列表,或者继续键入单词“console”。当“console”在列表中突出显示时,按Enter键或Tab键,或者双击它,Console将被添加到代码中。使用Intelli Sense的好处是可以保证单词大小写和拼写是正确的。
(4)键入一个句点和方法名 Write Line。在 Console 后键入句点时,将立即显示另一个Intelli Sense列表。该列表包含属于Console类的所有可能的方法和属性。这里需要的是Write Line方法,可以在列表的底部找到。自行完成键入或按向下键选择它,然后按Enter键或Tab键或双击它,Write Line将被添加到代码中。
(5)键入一个左括号。此时将立即看到Intelli Sense的另一项功能——方法签名,显示为工具提示消息。在本例中可以看到19个不同的签名,并可以通过按向上键和向下键浏览。
(6)键入字符串“欢迎使用控制台应用程序 ”,键入字符串时要用双引号(英文输入法的双引号)将字符串括起来,然后添加一个右括号(英文输入法的右括号)。会显示一条红色的波浪下划线,提醒缺少某些符号。键入一个分号“;”(英文输入法的分号),下划线将消失,整个代码效果如图1-22所示。

图1-22 代码完成效果
(7)运行程序。现在第一个程序已经完成,可以编译和运行了,按F5键或单击工具栏中的图标。命令行窗口一闪而过,看不到程序的输出结果。按下Ctrl+F5组合键,程序运行结果如图1-23所示。
也可以在“Console.Write Line("欢迎使用控制台应用程序");”的下一行添加一行语句“Console.Read ();”,如图 1-24所示,使程序等待控制台的输入。按下F5键将打开如图1-24所示的“控制台”窗口,按任意键后再按Enter键或者直接按 Enter 键即可退出程序。

图1-23 按Ctrl+F5组合键的运行结果

图1-24 加入“Console.Read ();”的代码及运行结果