c#

在本文开始写作的时候,虽然商用C# 编译器尚未推出, 但你可以下载微软的.NET Frameworks SDK Beta 1.
本节课通过介绍几个简单的程序,使得你对C#有所入门。本节程要达到如下几个目的:
1.理解一个C#程序的基本结构。

2.初步了解"名称空间"的概念。

3.初步了解"类"的概念。

4.了解"Main"方法所做的工作。

5.学会如何读取命令行输入信息。

6.学会使用控制台输入/输出 (I/O)语句。

1.清单1-1. 一个简单的欢迎程序Welcome.cs

// Namespace Declaration
using System;
// Program start class
class WelcomeCSS {
// Main begins program execution.
public static void Main() {
// Write to console
Console.WriteLine("Welcome to the C# Station Tutorial!");
}
}

说明


1.清单1-1中的程序包括四个基本元素:名称空间的声明,类,"Main"方法和语句。

2.本例中对名称空间的声明,表明正在使用"System"这个名称空间。

名称空间内包含了一组可以被C#程序调用的代码。有了"using System;"这个声明,就表明程序可以引用该"System"名称空间内的代码,而无需在每个引用的前面加上"System"。关于这一点,我将在后面专门介绍名称空间的课程中详细介绍。

3.类"class WelcomeCSS"包含了程序所要用到的数据,和所要执行的方法的定义。

同诸如接口和结构这样的元素类似,类在程序中是用来描述对象的,这些元素都将会在后续课程中详细介绍。本例中的类不包含数据,只包含一个方法。该方法4.程序运行时,WelcomeCSS类中的该方法表明了该类所要完成的事情。

方法名"Main"作为保留字,作为程序的起点。"Main"前面是个名为"static"的修饰符。"static"修饰符表明该方法仅仅在该特定的类中工作,而不是在在该类的实例中工作。这是必需的,因为一旦程序启动后,并不存在对象的实例。类,对象和实例的具体用法将会在后面的课程中覆盖到。每个方法必须有个返回值类型。本例中,返回值类型是"void",它表明"Main"函数没有返回值。每个方法名的后面也都跟着个参数表,参数表包含有零个或者多个参数并用括号括起来。为了简单起见,没有在"Main"后面添加参数。后面的课程中,将介绍"Main"方法所允许采用的参数类型。

5."Main"方法通过"Console.WriteLine(...)" 语句表明其行为。

"Console" 是"System" 名称空间中的类。"WriteLine(...)"是"Console" 类中的方法。我们使用"."这个句点操作符来标记程序中的从属元素。注意到,我们也可以这样来书写:"System.Console.WriteLine(...)",这样的书写格式是很有趣的,它是根据"namespace.class.method" 的格式进行书写的。如果在程序的一开始,没有采用"using System"的声明,那么就必须严格遵守"System.Console.WriteLine(...)"这样的书写格式。该语句的执行结果是在控制台控制台上输出字符串"Welcome to the C# Station Tutorial!" 。

6.注释是由"//"标出的。

例子中的这些注释都是单行注释,表明从该注释符号的开始处到该行结束处,都是注释部分。如果你的注释要跨越若干行,即多行注释,可以以符号"/*"开始,以符号"*/"结束,其中所包含的全部是注释。你也可以在多行注释符号中包含单行注释。但是,不能在单行注释符号后面放上多行注释符号。程序编译时,将忽略掉注释部分。注释的目的是为了用简单的英语给程序所要完成的工作加上注解。

7.所有语句都以分号";"结束。

类和方法以"{"开始,以"}"结束。任何位于"{"和"}"之间的语句定义为块。块定义了程序元素的活动范围 (或者称为生命期和可见性),这些概念将在后面的课程中加以介绍。

8.可以编写出能够接受命令行输入信息的程序。

命令行输入信息的集合是在"Main"方法中进行处理的。清单1-2中的程序,可以从命令行中接受输入一个名字,之后在控制台上显示出来。

2.清单1-2. 读取命令行输入信息的程序NamedWelcome.cs

// Namespace Declaration
using System;
// Program start class
class NamedWelcome {
// Main begins program execution.
public static void Main(string[] args) {
// Write to console
Console.WriteLine("Hello, {0}!", args[0]);
Console.WriteLine("Welcome to the C# Station Tutorial!");
}
}

说明


1.记住,要把你的名字添加到命令行中。

例如,在命令行中打入"NamedWelcome Joe"。如果不这样做,程序就会崩溃,在后面的课程中,将介绍如何检测这种情况,以及如何避免这种情况的出现。

2.在清单1-2中,在"Main"方法的参数表中有个入口。

参数名是"args"。 在程序的后面部分就要引用该参数。"string[]"是参数"args"的类型。"string"类型用于存放字符。这些字符可以是一个单词,也可以是多个单词。方括号"[]"表示数组,"args"参数由命令行上的若干个单词构成。

3.在"Main"方法的语句中,多了一条"Console.WriteLine(...)"语句。

该语句中的参数表同以往的写法不同,其中有个格式字符串"{0}" 参数。 格式串中的第一个参数从数字0开始,第二个参数从数字1开始,依此类推。 "{0}" 参数意味着引号后面的参数值将会输出到该位置。现在让我们来看看引号后面的参数。

4."args[0]"参数,它指向"args"数组中的第一个字符串。

数组中的第一个元素是args[0], 第二个元素是args[1],依此类推。例如,如果我在命令行中写上"NamedWelcome Joe","args[0]"的值就为"Joe".

定义了该类的行为(或者称为该类所能做的事情)。

我们回到在格式字符串中嵌入的"{0}" 参数吧,因为"args[0]"是格式串后面的第一个参数, 一旦执行该命令时,"args[0]"的值"Joe"就会替换掉格式串中的"{0}"。一旦执行命令:"NamedWelcome Joe",输出结果就会为:

>Hello, Joe!
>Welcome to the C# Station Tutorial!

通过控制台也可以把输入信息提供给程序。清单1-3演示了交互式处理用户输入的信息的方法。

3.清单1-3. 交互式处理输入信息的程序 InteractiveWelcome.cs

// Namespace Declaration
using System;
// Program start class
class NamedWelcome {
// Main begins program execution.
public static void Main() {
// Write to console/get input
Console.Write("What is your name?: ");
Console.Write("Hello, {0}! ", Console.ReadLine());
Console.WriteLine("Welcome to the C# Station Tutorial!");
}
}

说明

这一次,"Main"方法没有用到任何参数,但现在程序中有了三条语句,前面两条语句不同于第三条语句,它们是:"Console.Write(...)"而不是 "Console.WriteLine(...)"。区别是:"Console.Write(...)"语句把信息输出到控制台,之后光标停留在同一行,而"Console.WriteLine(...)"把信息输出,之后换行。

第一条语句仅仅输出"What is your name?: "到控制台。

第二条语句要等到其参数被适当地处理之后,才会输出信息。 格式串后面的第一个参数是:"Console.ReadLine()"。这就使得程序要等待用户在控制台输入信息,输入信息以回车或者换行结束。该方法的返回值替换了格式串中的"{0}"参数,并输出到控制台上。

最后一个语句也用来输出信息到控制台,这一点我们在前面已经介绍过。一旦运行了程序"InteractiveWelcome",其输出结果为:

>What is your Name?
>Hello, ! Welcome to the C# Station Tutorial!

小结
到现在为止,你已经了解了C#程序的基本结构,名称空间和类。你还了解到"Main"方法是C# 程序的入口,并学会了如何捕捉命令行的输入信息,以及如何进行交互式的I/O操作。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值