Program.cs文件定义了一个名为Program的类,该类包含一个名为Main的方法。所有方法都必须在一个类的内部定义。第7章将进一步介绍类。Main是一个特殊的方法,它指定了程序的入口点。它必须是一个静态方法。(方法的详情将在第3章讨论;静态方法将在第7章讨论。)
重要提示:C#是一种区分大小写的语言。拼写Main时,首字母必须大写。在后面的练习中,将写一些代码在控制台中显示消息“Hello World”;将生成并运行这个Hello World控制台应用程序;还将学习如何使用命名空间对代码元素进行分区。
利用“智能感知”(IntelliSense)来写代码 1,在显示了Program.cs文件的“代码和文本编辑器”窗口中,将光标定位到Main方法的左大括号{后面,按Enter键另起一行。在新的一行中,键入单词“Console”,这是一个内建的类的名称。在键入单词“Console”的首字母“C”时,会显示一个“智能感知”列表。其中包含了在此上下文中,所有合法的C#关键字和数据类型。现在要做的事情很简单,要么继续输入其他字母,要么在列表中滚动并用鼠标双击Console项。还有一个办法是,一旦键入“Con”,智能感知列表就会自动定位到Console项目,此时按Tab键或Enter键即可选中并输入它。 现在,Main方法应该像下面这样:
static void Main(string[] args)
{
Console
}
注意 Console是一个内建的类,利用它提供的方法,可以在屏幕上显示消息或者从键盘获输入。
2,在单词Console之后,立即输入一个句点符号。随后会出现另一个智能感知列表,其中显示了Console类的方法、属性和字段。
3,在列表中向下滚动,直到选中WriteLine,再按Enter键。还有一种方法是,继续输入字符W,r,i,t,e,L,直到WriteLine被自动选定,然后再按Enter键。 随后,智能感知列表会关闭,WriteLine方法会被添加到源文件中。现在的Main方法应该像下面这样:
static void Main(string[] args)
{
Console.WriteLine
}
4,输入一个起始圆括号(。随后将出现一条智能感知提示。 在这个提示中,显示了WriteLine方法可用的参数。事实上,WriteLine是一个重载的方法;换言之,Console类包含多个名为WriteLine的方法——事实上,它提供了该方法的多达19个不同的版本。可以使用WriteLine方法的不同版本来输出不同类型的数据(重载方法将在第3章进一步讨论)。现在的Main方法应该像下面这样:
static void Main(string[] args)
{
Console.WriteLine(
}
提示:
可以单击提示中的上下箭头按钮,在WriteLine的各个重载版本之间切换。
5,输入一个结束圆括号),再加一个分号。现在的Main方法应该像下面这样:
static void Main(string[] args)
{
Console.WriteLine();
}
6,移动光标,在WriteLine后面的左右圆括号之间输入字符串"Hello World",引号也包含在内。现在的Main方法应该像下面这样:
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
提示:
要养成一个良好的习惯:先连续输入一对匹配的字符——例如(和),以及{和}——再在其中填写内容。如果先填写内容,很容易忘记输入结束字符。
智能感知图标在类名后输入一个句点时,?智能感知?会显示这个类的每个成员的名称。在每个成员名称的左侧,有一个指示成员类型的图标。下表总结了图标及其代表的类型。
在各种上下文中输入代码时,还可能看到其他?智能感知?图标。
注意:一些代码中包含两个正斜杠,后跟一些纯文本,这样的情况司空见惯。这些是注释。它们会被编译器忽略,但对开发人员来说非常有用,因为可以用注释来记录代码实际采取的操作。例如下面的例子:
Console.ReadLine(); //等待用户按Enter键
从两个正斜杠到行末,所有文本都会被编译器忽略。也可以使用/*来添加多行注释。编译器将跳过它之后的一切内容,直到遇到一个*/(可能出现在多行之后)。建议尽量使用详细的注释对自己的代码进行编档。
生成并运行控制台应用程序1,在“生成”菜单中,单击“生成解决方案”。 这个操作会对C#代码进行编译,生成一个可以运行的程序。在“代码和文本编辑器”窗口下方,会显示一个“输出”窗口。
提示:如果"输出"窗口没有出现,请在"视图"菜单中选择"输出"。
在“输出”窗口中,会出现如下类似的消息,它指出程序已经编译。
------已启动生成: 项目: TextHello, 配置: Debug x86 ------
CopyFilesToOutputDirectory:
TextHello - > C:\Users\周靖\My Documents\Microsoft Press\Visual CSharp Step By Step\
Chapter 1\TextHello\TextHello\bin\Debug\TextHello.exe
========== 生成: 成功或最新1 个,失败0 个,跳过0 个==========
如果程序有错,错误将在“错误列表”窗口中显示。下图显示了忘记在WriteLine语句的Hello World文本后输入结束引号所出现的后果。注意,有的时候,一个错误可能导致多个编译错误。
仔细遵循前面的步骤进行操作,就不应出现任何错误或警告,程序应成功生成。
提示:在"错误列表"窗口中双击一个错误,光标会移至导致错误的代码行。另外,输入一行不能编译的代码时,Visual Studio会在这一行的下方显示红色波浪线。
生成之前不必先存盘,因为?生成解决方案?命令会自动存盘。在?代码和文本编辑器?窗口的标签中,文件名后的星号指出自上一次存盘以来,该文件已被修改。
2,在“调试”菜单中,单击“开始执行(不调试)”。 随后会打开一个命令窗口,程序开始运行。会显示一条“Hello World”消息,而且程序将等待用户按任意键继续。如下图所示。
注意:“
按任意键继续…”这个提示是由Visual Studio自动生成的,不必为此编写任何代码。如果使用"调试"菜单中的"启动调试"令来运行程序,应用程序也会运行,但命令窗口在显示了"Hello World"后会立即关闭,不会停下来等着我们按键。
3,确认当前的焦点是这个命令窗口,按Enter键(或其他任意键)。 命令窗口将关闭,并返回Visual Studio 2010编程环境。
4,在“解决方案资源管理器”中,单击TextHello项目(而不是解决方案),然后单击“解决方案资源管理器”工具栏中的“显示所有文件”按钮(左数第二个按钮)。
随后,Program.cs文件的上方会显示bin 和obj。这两项直接对应于项目文件夹(\Microsoft Press\Visual CSharp Step by Step\Chapter 1\TextHello\TextHello)中的bin和obj文件夹。这些文件夹是在生成应用程序时由Visual Studio创建的,它们包含了应用程序的可执行版本,以及其他用于生成和调试应用程序的文件。
5,在“解决方案资源管理器”中,单击bin左侧的+图标。 随后会显示另一个名为Debug的文件夹。也许还会看到一个名为Release的文件夹。
6,在“解决方案资源管理器”中,单击Debug文件夹左侧的+图标。 随后会显示4个子项,分别是TextHello.exe,TextHello.pdb,TextHello.vshost.exe和TextHello.vshost.exe.manifest。
文件TextHello.exe是编译好的程序。在“调试”菜单中选择“开始执行(不调试)”命令后,运行的就是这个程序。在其他文件中,包含了在调试模式下运行程序时(选择“调试”菜单上的“启动调试”命令)要由Visual Studio 2010使用的信息。