深入 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.

请参见

任务

如何:创建 C# 控制台应用程序

概念

C# 语言入门