深入 C# 程序 (Visual C#)
更新:2007 年 11 月
为了解 C# 程序的工作原理,让我们查看经典的“Hello World!”程序,依次处理每行 C# 代码。若要自己创建此程序,请参见 如何:创建 C# 控制台应用程序 主题以获得对编写、生成和运行一个相似的 C# 程序的分步指导。
Hello World,C# 风格
C# 语言使用类来组织和包装代码。实际上,所有可执行的 C# 代码都必须包含在类中,即使是类似“Hello World!”这样短小的程序。以下是在控制台窗口中显示“Hello World!”的完整程序。
// A Hello World! program in C#
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
System.Console.WriteLine("Hello World!");
// Keep the console window open in debug mode.
System.Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
}
}
using 指令和命名空间
使用 Visual C# 速成版创建控制台应用程序时,代码编辑器中的开头几行包含 using 指令,其中列出了几个 .NET Framework 命名空间。命名空间是一种将类和结构组织在一起的方式,以此限制类和结构的应用范围,避免与其他类和结构发生名称冲突。在使用 Visual C# 速成版创建程序时,将自动创建一个命名空间。若要在程序中使用其他命名空间的类,必须使用 using 指令来指定相应的命名空间。默认情况下,在创建新的应用程序时将列出最常用的 .NET Framework 命名空间。如果使用类库中其他命名空间中的类,必须在源文件中针对该命名空间添加一条 using 指令。有关命名空间的更多信息,请参见 命名空间(Visual C# 速成版)。
当代码编辑器检测到您已声明了一个在当前 using 指令中所列的命名空间内无法找到的类或结构时,它将给出包含该类或结构的命名空间的建议。
注释
在 using 语句之后,接下来的一行包含一条注释。注释有助于为您自己和其他程序员加入说明。
// A Hello World! program in C#
// 字符将这行的其余内容转换为注释内容。还可通过将文本块置于 /* 和 */ 字符之间来注释文本块,如下所示:
/* A "Hello World!" program in C#.
This program displays the string "Hello World!" on the screen. */
也可以使用格式设置选项自动注释代码。有关更多信息,请参见 如何:注释代码行(C# 速成版)。
类
C# 语言使用类来打包代码:所有可执行的 C# 代码都必须包含在类中。有关更多信息,请参见类(Visual C# 速成版)。
Main()
- C# 程序必须包含一个 Main 方法,用于控制程序的开始和结束。可在 Main 方法中创建对象和执行其他方法。Main 方法是驻留在类或结构内的静态方法。在“Hello World!”示例中,它驻留在 Program 类中。
Main 方法可以通过以下方式之一进行定义:
它可以返回 void:
static void Main() { //... }
它还可以返回 int:
static int Main() { //... return 0; }
它可以使用参数,这对于命令行实用工具很有用:
static void Main(string[] args) { //... }
- 或 -
static int Main(string[] args) { //... return 0; }
Main 方法的参数是 string 数组,该数组表示用于调用程序的命令行参数。注意,与 C++ 不同,此数组不包含可执行 (.exe) 文件的名称。有关更多信息,请参见 Main() 和命令行参数(C# 编程指南)。
控制台输入和输出
C# 控制台程序一般使用 .NET Framework Console 类提供的输入/输出服务。Console.WriteLine("Hello, World!"); 语句使用 WriteLine 方法。它在命令行窗口中显示其字符串参数并换行。其他 Console 方法用于不同的输入和输出操作。Console 类是 System 命名空间的成员。如果 using System; 语句没有包含在程序开头,则必须指定 System 类,如下所示:
System.Console.WriteLine("Hello World!");
WriteLine 方法十分有用,在编写控制台应用程序时会经常用到它。
WriteLine 可显示字符串:
Console.WriteLine("Hello World!");
WriteLine 也可显示数字:
int x = 42;
Console.WriteLine(x);
如果需要显示若干个项,则用 {0} 表示第一项,{1} 表示第二项,依此类推,如下所示:
int year = 1066;
string battle = "Battle of Hastings";
Console.WriteLine("The {0} took place in {1}.", battle, year);
输出应如下所示:
The Battle of Hastings took place in 1066.