3.2 编译应用程序 由于NGWS Runtime支持所有的编译器(VB、C++和C#),你不必买一个单独的开发工具用来把应用程序编译成IL(中间语言)。但是,如果你从没有用过命令行编译器编译过应用程序(仅懂得编译名,而没有熟记), 它还是你的首要选择。 打开命令提示符并切换到存 helloworld.cs 的目录。敲入以下命令: csc helloworld.cs helloworld.cs 被编译并链接成hellworld.exe。因为源码没有错误(那当然!),C#编译器没有出错提示,在整个编译过程没有丝毫停顿。 现在你已经准备好运行第一个真正用C#编写的应用程序。简单地在命令行上敲入helloworld,输出结果为 "Hello World"。 在继续往下介绍之前, 我想稍为想象一下第一个应用程序和一个编译器开关的使用: csc /out:hello.exe helloworld.cs 这个开关告诉编译器输出文件命名为hello.exe。虽然这不是什么绝招,但它是这本书中用到的未来编译器的基本功。 3.3 输入和输出 到目前为止,我仅仅演示了把简单的常量字符串输出到屏幕。尽管这本书只介绍了C#编程的概念而不介绍用户接口编程,但我需要让你迅速学会简单的屏幕输入和输出方法——相应于C的scanf 和 printf,或者C++的cin 和cout。我不能提供VB相应的函数,因为屏幕访问不是该核心语言的一部分。 你只需要能够读用户的输入并提示一些信息给用户。清单3.3 说明如何读一个用户请求的名字输入,并显示一条已定制好的"Hello" 信息。 Listing 3.3 从控制台读输入信息 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 " + strName); 10: } 11: } 第7行使用Console对象的一个新方法用于提示文本信息给用户,它就是Write方法。它与WriteLine不同的地方在于它输出时不换行。我使用这种方法以便用户可以在信息提示的同一行输入名字。 在用户输入他的名字后(并按回车键),ReadLine 方法读入了一个字符串变量。名字字符串连接到常量字符串"Hello",并用我们早已熟悉的WriteLine方法显示出来 你几乎已学完了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+(ASP.NET)。  
2/2 首页 上一页 1 2 |