; 10: }
11: }
第7行使用Console对象的一个新方法用于提示文本信息给用户,它就是Write方法。它与WriteLine不同的地方在
于它输出时不换行。我使用这种方法以便用户可以在信息提示的同一行输入名字。
在用户输入他的名字后(并按回车键),ReadLine 方法读入了一个字符串变量。名字字符串连接到常量字符
串"Hello",并用我们早已熟悉的WriteLine方法显示出来(见图3.2)。
图3.3 编译和运行定制的Hello 应用程序
你几乎已学完了NGWS框架必要的输入和输出功能。但是,你还需要为用户显示多个值。为用户写一个格式串。清
单3.4展示一个例子。
清单 3.4 使用不同的输出方法
1: using System;
2:
3: class InputOutput
4: {
5: public static void Main()
6: {
7: Console.Write("Please enter your name: ");
8: string strName = Console.ReadLine();
9: Console.WriteLine("Hello {0}",strName);
10: }
11: }
第9行包含了使用格式串的Console.WriteLine语句。格式串例子如下:
"Hello {0}"
{0}代替WriteLine方法的参数表中紧随格式串后的第一个变量。你可以用该技术格式化超过三个变量。
Console.WriteLine("Hello {0} {1}, from {2}",
strFirstname, strLastname, strCity);
当然,并不仅限于只使用字符串变量。你可以使用任何类型,这些类型在后面的第四章 "C#类型"中有讨论。
3.4 添加注释
当写代码时,你应为代码写注释条文,解释实现的内容、变更史等。尽管你注释中提供的信息(如果有的话)是给
你写的,但是你还是必须遵守写C#注释的方法。清单3.5 显示采用的两种不同的方式。
清单3.5 给你的代码添加注释
1: using System;
2:
3: class HelloWorld
4: {
5: public static void Main()
6: {
7: // 这是单行注释
8: /* 这种注释
9: 跨越多行 */
10: Console.WriteLine(/*"Hello World"*/);
11: }
12: }
"//" 符号用于单行注释。你可以用"//"注释当前所在行,或是跟在一个代码语句的后面:
int nMyVar = 10; // 胡说八道
所有在"//"后面的被认为是一条注释;所以,你可以同样用它们来注释一整行或一行源代码的部分。这种注释方
式同C++中介绍的相似。
如果你的注释跨越多行,必须使用"/* */"的字符组合。这种方式在C中有效。除了单行注释外,这种方式在C++和
C#中还同样有效。因C/C++和C#都使用这种多行注释方式,所以它们也使用相同的终结符。请看下列代码行:
/* Console.WriteLine("Hello World"); */
我使用"/* */"简单地注释一整行。现在我假定这一行是很长代码的一部分,而且我决定要暂时禁用一个程序块:
/*
...
/* Console.WriteLine("Hello World"); */
...
*/
这个结构所存在的问题为: "Hello World"那一行后面的"*/"终止了始于第一行的"/*"的注释,余下的代码对编
译器有效,你将看到一些有趣的出错信息。至少 最后的"*/"被标志为归属错误。我只不过想提醒一下,让你了解这种错
误。
3.5小结
在这一章中,你创建、编译并执行了第一个C#应用程序:著名的"Hello World"程序。我用这个短短的应用程序给
你介绍有关Main方法,它是一个应用程序的入口点,也是出口点。这个方法可以没有返回值或返回一个整数错误级别。如
果你的应用程序用参数调用,你可以(但不必要)读出并使用它们。
在编译和测试应用程序后,你学到了更多的由Console对象提供的有关输入和输出的方法。对于学习C#而言,它们
足以创建出有意义的控制台例子,但用户接口的大部分将是WFC、WinForms或者ASP+。
上一页 [1] [2]