3.3 学习第一个C#程序
那就让我们开始C#的学习吧!
本节介绍如何生成你的第一个C#程序:这是一个最基本的C#应用程序,程序中的代码在全书中将经常出现。
我们一直坚信,只有不断练习才是最好的学习方式。所以建议读者从本章开始对书中所提供的程序示例,亲自进行编辑、编译和运行,在这个过程中你将获得开发C#程序的有益经验。
3.3.1 编写第一个C#代码
第一个程序总是非常简单的。我们让用户通过键盘输入自己的名字,然后程序在屏幕上打印一条欢迎信息程序。
功能说明:编写第一个C#程序。
程序清单3-4
using System; class Welcome { static void Main() { Console.WriteLine("Please enter your name:"); Console.ReadLine(); Console.WriteLine("Welcome to you!"); } }
你可以在任意一种编辑软件中完成上述代码的编写。然后把文件存盘文件名叫做Welcome.cs,典型的C#源文件通常都以.cs作为文件的扩展名。
代码分析:
· using System表示导入名字空间,高级语言总是依赖于许多系统预定义的元素。如果你是C或C++的程序员,那么你一定对使用#include之类的语句来导入其他C或C++源文件再熟悉不过了。C#中的含义与此类似,用于导入预定义的元素,这样在自己的程序中就可以自由地使用这些元素。
· 在程序的第二行,class Welcome声明了一个类,类的名字叫做Welcome。这个程序为我们所做的事情就是依靠它来完成的。
· C#程序必须包含一个Main方法,程序控制在该方法中开始和结束。在Main方法中创建对象和执行其他方法。Main方法是驻留在类或结构内的静态方法。用下列方式之一声明Main方法:该方式返回void。
· 程序所完成的输入输出功能都是通过Console来完成的。Console究竟是什么呢?它是在名字空间中System已经为我们定义好的一个类。这里我们不用管它是怎么完成工作的。只要使用它就可以了。
上面的代码中类Console,为我们展现了两个最基本的方法WriteLine和ReadLine。Console.ReadLine表示接收输入设备输入,Console. WriteLine则用于在输出设备上输出。
注意
在C#程序中程序的执行,总是从Main()方法开始的。一个程序中不允许出现两个或两个以上的Main()方法。对于习惯了写C控制台程序的读者,请牢记C#中Main()方法必须被包含在一个类中。
3.3.2 程序添加注释
应用程序并不是只要你自己一个人能看懂就够了,这里笔者还要再一次强调,养成良好的代码注释的习惯是一名优秀的程序员必备的条件之一。代码注释不会浪费你的编程时间,它只会提高你的编程效率,使你的程序更加清晰完整友好。
注释的方式和C++没有区别,每一行中双斜杠“//”后面的内容以及在分割符“/*”和“*/”之间的内容都将被编译器忽略。
这样我们就可以采用“//”进行单行注释,采用分割符“/*”和“*/”进行多行注释让我们给Welcome程序加上注释。
功能说明:给程序添加注释。
程序清单3-5
using System; class Welcome { static void Main() { Console.WriteLine("Please enter your name:"); //要求用户输入姓名 Console.ReadLine(); //读取用户输入 Console.WriteLine("Welcome to you!"); /*本行代码用于打印欢迎信息,你可以在这里添加自己的代码,程序在这里结束*/ } }
下面是对程序进行注释时要注意的两个问题。
首先,避免在“//”之后的单行注解中使用反斜杠符号“\”,因为反斜杠符号“\”在C#中是一个续行符,这样做往往会导致你所不希望的结果出现,例如当你写了类似于下面的代码:
Console.WriteLine("The result is:{0}" , // \ 150 );
在编译这段代码时“//”表示逻辑上同一行剩余的所有文字被作为注释看待,而续行符“\”则将这一行同下一行连接起来,那么第二行也被作为注释的一部分。这时编译器找不到与第一行的左括号“(”相匹配的右括号“)”因此编译出错。
其次,分割符“/*”和“*/”之间的注释不能有嵌套注释。这是因为编译器从遇到第一个分割符“/*”开始将忽略下一个“/*”直到遇上下一个与“*/”之匹配的分割符才认为注释结束,这样编译器就会对多余的“*/”报告错误,认为没有“/*”与之相匹配。
3.3.3 编译程序
理解了源程序中每条代码的具体含义之后,下一步要做的就是让这个程序真正能够运行。不过对源代码即使还有不明白的地方也没有关系,在后续章节的学习中,你最终会熟练掌握这些概念的。
编译程序有两种方式,一种方式是编译程序可以通过在命令行上输入C#编译器的可执行文件(csc.exe)的名称来调用C#编译器。
启动一个命令行提示符在屏幕上输入一行命令:
csc welcome.cs
另一种是如果电脑上安装了Visual Studio .Net,则可以在集成开发环境Integrated Developer Environment IDE中直接选择快捷键或菜单命令编译并执行源文件,如图3-3所示。
图3-3 集成VS环境编译程序
注意
如果没有设置环境变量,有一种解决方法。在命令行上运行批处理文件%Microsoft Visual Studio .Net %\Vc7\bin\vcvars32.bat。其中%Microsoft Visual Studio .Net是安装Visual Studio .Net的文件夹,如图3-4所示。
图3-4 使用批处理来设置环境变量
注意
我们可以灵活地使用.NET平台提供的命令行编译器的不同选项,选择不同的编译方式,从而灵活地对编译进行控制。
· 如果我们希望对源文件Welcome.cs进行编译生成名为MyWelcome.exe的可执行文件,我们可以采用这样的命令:
csc/out: MyWelcome.exe Welcome.cs
· 如果我们并不需要一个可执行文件,而仅仅是希望简单地检查源文件中是否存在语法错误,则命令可以写成:
csc/nooutput: Welcome.cs
· 如果不知道各个选项的具体含义可以通过求助来获得。
csc/?
表3-1显示了.NET平台提供的所有的编译选项。
表3-1 编译选项
运行结果,如图3-5所示。
图3-5 运行第一个C#程序