Beginning C# Objects从概念到代码——1.4 解析一个简单的C#程序

来源:互联网 发布:linux如何解压bin文件 编辑:程序博客网 时间:2024/05/01 10:38
 

1.4 解析一个简单的C#程序

图1-1展示了一个最简单的C#应用程序。

图1-1 剖析一个简单的C#程序

下面逐一讨论该程序的关键元素。

1.4.1 “using System;”语句

程序的第一行,

using System;

是让程序得以正确编译和运行的必要条件,它向编译器提供在System名称空间中定义的类型信息;名称空间(namespace)是一系列预定义C#编程元素的逻辑组合(在C#中是FCL的一部分)。我们到第13章才详细说明名称空间的细节;现在,只要记得 using System; 语句是让我们的程序(特别是Console.WriteLine(“Hello!”);这行)正确编译的必要条件就行了。

using是一个C#关键字;关键词也被叫做保留字,代表一种编程语言中有特殊意义的字词,程序员不能用这些字词来做变量名、函数名或任何你将学到的其他C#构成块的名称。在本书中我们还会遇到许多C#关键字;附录E给出了C#关键字的完整列表。

1.4.2 注释

程序的后面一行是注释。

// 本例演示一些基本C#语法。

C#支持三种不同的注释风格;这里我们看看其中两种。

C风格的注释块由右斜杠加上星号开头(/*),由星号加上右斜杠结束(*/)。在它们中间的任何字符都被当作注释,被编译器忽略掉,不管有多少行注释都是如此。

/*这是单行的C风格注释*/

/* 这是多行的C风格注释。这样可以暂时
注释掉整段代码,而不直接删除它们。

当编译器遇到第一个“斜杠星号”时,

它将把后续的内容,甚至包括代码行,

都看作注释,直至遇到下个“星号斜杠”。

x = y + z;

a = b / c;

j = s + c + f;

*/

C++式的单行风格注释使用双斜杠(//)来注释一行,如下所示:

x = y + z; // 注释文本直至行末

a = b / c;

// 这里是由一系列C++风格(单行)注释组成的注释块。

// 它可作为C风格代码块。

// 的对等代换物。(/*……*/)

m = n * p;

另外还有一种C#注释,用在XML文档中,不过已经超出本书讨论范围。
注意,注释不能嵌套。如下面的代码无法通过编译:

/* 注释开始……

x = 3;

/* 哇!在第一个注释结束前,我们错误地企图嵌套第二个注释!

这将导致编译问题,因为编译器将忽略第二个(那个嵌套的)注释开始符。

我们已经位于一个注释中!编译器遇到第二个注释结束符时,会以为

是遇到了第一个注释结束符…… */

z = 2;

*/

在上例中,当编译器在末行遇到我们希望的“外围”注释结束符(*/)时,将报告类似下列编译错误:

error CS1525: Invalid expression term“/”

error CS1002: expected;

1.4.3 类声明/“包装”

下面介绍类的“包装(wrapper)”——更正确的名称是类声明,其形式如下:

public class name

{ ... }

等等。如:

public class SimpleProgram

{ ... }

花括号中是程序的主要逻辑,同时也包括类的其他构成块;在后续章节中,你将学习到类的其他知识,例如如何命名类,为什么一开始就需要类包装,等等。现在只要记住,public和class是C#的关键字,而SimpleProgram则是我们发明的名称。

1.4.4 Main方法

在SimpleProgram类声明里,我们可以看到程序的起始函数,在C#中被叫做Main方法(Main method)。Main方法是C#程序的入口点。运行程序时,系统将调用Main方法,

启动我们的应用程序。

对于上例这样简单的程序,所有处理逻辑可以在单个方法中包括。对于更复杂的应用程序,Main方法就可能无法包括整个系统的全部处理逻辑了。在后面的章节中,你将学习到如何突破Main方法的局限。

Main方法的第一行如下:

statoid void Main() {

该行定义了Main方法的头(header),而且必须像范例中那样写(第13章里面我们会提到一个例外,即在需要接受命令行参数时的情况)。

我们的Main方法体(用花括号包含的那部分)中,包括单行语句:

Console.WriteLine("Hello!");

它输出信息

Hello!

到屏幕上。以后我们再探讨该语句的语法,现在请先留意语句结尾的分号。如同在C、C++和Java中那样,分号放置在单个C#语句的末尾。用花括号{……},把代码块分隔开。在本章稍后的“代码块和变量作用范围”部分中,我们再详细讨论它。

在更复杂的程序中,我们往往还会在Main方法内声明变量、创建对象和调用其他方法。

好了,我们已经见过了简单的C#程序,现在来探索一些基本的C#语法特点。