Visual C
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 C#程序设计

程序是用户用来指挥计算机进行特定操作,使计算机完成指定任务的指令序列。在进行程序开发前,需要了解一些基本知识。本节以第1章介绍的控制台应用程序为例,讲解C#程序的组成要素和基本语法格式。

2.1.1 C#程序的组成要素

在第1章最后一节介绍了控制台应用程序的创建过程,并实现了在屏幕上输出“HelloWorld”的功能。本节将对该程序进行分析,请看HelloWorld范例项目。

范例2.1

HelloWorld.sln

HelloWorld.sln在这里我们演示了在Visual Studio中创建的控制台应用程序的运行效果,本程序将在控制台中输出“HelloWorld”。

(光盘\code\ch2\ HelloWorld \ HelloWorld.sln)

          1 using System;                          //默认使用的命名空间
          2 using System.Collections.Generic;
          3 using System.Linq;
          4 using System.Text;
          5 namespace HelloWorld                   //自己定义的命名空间“HelloWorld”
          6{
          7    class Program                      //默认生成的类Program
          8    {
          9        static void Main(string[]args)       //主方法
          10        {
          11           Console.WriteLine("HelloWorld");
          12           Console.Read();            //等待用户输入
          13        }
          14    }
          15 }

此程序的作用是在屏幕上输出“HelloWorld”,当用户按下Enter键时程序结束。该程序非常简单,但是包含C#的基本组成要素:关键字、命名空间、类和方法、语句和分号、大括号。

1. 关键字

在代码中默认字体为蓝色的using、namespace、class、static、void、string为C#语言中的关键字。关键字也叫保留字,是对C#有特定意义的字符串。

2. 命名空间

命名空间实质上是一个集合,一个类和实例的集合,是为了更好地管理这些类和实例而定义的一个集合。本程序的前4行是以using开头的语句,说明本程序可以使用这些命名空间中的类。在创建控制台应用程序时,系统自动导入这4个命名空间,并且放在程序代码的起始处。在本程序中只用到System命名空间,该命名空间是Visual Studio 2008中最基本的命名空间。

在很多程序中多需要添加其他命名空间,只需要在文件开头使用using语句加命名空间名即可。

3. 类和方法

在本程序中出现的Program是类名。C#是完全面向对象的,每个应用都必须包含类。在该类中声明了一个Main()方法,该方法是应用程序的入口。C#要求每个程序必须有且只有一个Main()方法。

4. 语句和分号

程序中出现的分号(“;”,英文状态下输入的)是C#应用程序中执行操作的指令。C#中的语句必须用分号“;”结束。可以在一行中书写多条语句,也可以将一条语句书写在多行上。

5. 大括号

程序中的大括号“{”和“}”是一种范围标志,是组织代码的一种方式,用于标识应用程序中逻辑上有紧密联系的一段代码的开始与结束。大括号可以嵌套,以表示应用程序中的不同层次。

这里只是简单指出一个C#程序的组成要素,在后面的章节中将会详细介绍每一部分的具体作用。

2.1.2 C#程序的格式

在代码编写过程中,养成良好的习惯,可以做到事半功倍。在编程中代码按照一定的格式书写可以使代码层次清晰,从而提高程序的可读性,为团队开发减少麻烦。

1. 命名规范

C#是区分大小写的。例如,定义变量Name与name,对于C#来说是不同的变量。在C#中,类名、方法名使用Pascal大小写形式,如2.1.1节程序的Program类中所示,第一个字母大写,其他字母小写。变量和方法参数使用Camel大小写形式。

作者心得:

Pascal大小写形式:所有单词第一个字母大写,其他字母小写。Camel大小写形式:除了第一个单词,所有单词第一个字母大写,其他字母小写。命名空间需按照标准的模式命名,文件名要和类名匹配。例如,对于类HelloWorld,相应的文件名应为helloworld.cs。

2. 缩进和间隔

在程序设计中,用统一的缩进格式可以清晰地表示程序的结构层次。例如2.1.1节的HelloWorld程序,命名空间的大括号作为最外层,顶格书写。类的大括号向里缩进一个制表位,类内部的方法和成员变量依次向里缩进。缩进使用Tab键,不用空格。缩进用于表示代码的结构层次,在程序中并非必需,但缩进可以清晰地表示程序的结构层次。在程序设计中,应该使用统一的缩进格式书写代码。

3. 良好的编程习惯

避免使用大文件。如果一个文件里的代码太长,必须考虑将代码分开到不同类中。如果一个方法代码行超过25行,应该考虑将其分解为不同的方法。为方法命名,最好做到见名知意。一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。

关于变量的使用,最好不要几个方法用相同的变量,这样可能会造成混乱。例如,不容易确定该变量值什么时候发生了改变。如果在程序中使用固定值,例如圆周率,这时尽量使用常量代替。

4. 注释

代码的注释对代码起到解释说明的作用。在适当的位置进行注释,可增强代码的可读性,有利于阅读和维护,使不同开发者更快地理解代码。在编译运行程序时,将跳过程序的注释部分。C#中有两种基本注释,一是单行注释,二是多行注释。单行注释以双斜线“//”开始,不能换行。例如2.1.1节的注释,就是单行注释。多行注释以“/*”开始,以“*/”结束,可以换行。例如下面的注释就是多行注释。

/*

[修改标识]

[修改原因]

Visual C# 2008

多行注释

*/

注意,这种多行注释又叫做类注释,一般用于不在使用的代码和临时测试屏蔽某些代码。这种方式的注释不允许嵌套。除此之外,C#还有一种特殊的注释方法,即用“///”注释后面的语句。请看使用该注释的程序代码:

          1     ///<summary>
          2     ///HelloWorld类
          3     ///</summary>
          4     public class HelloWorld
          5     {
          6         ///<summary>
          7         /// 控制台应用程序入口
          8         ///</summary>
          9         public static int Main(string[]args)
          10        {
          11           Console.WriteLine("HelloWorld");   //在屏幕上输出HelloWorld
          12           Console.Read();            //从标准输入流读取下一行字符,即等待用户输入
          13        }
          14    }

程序中的第一个注释是对下面的HelloWorld类说明,第二个注释是对主方法Main的说明。这种方式的注释可以为代码创建文档。