`
javahigh1
  • 浏览: 1302078 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

C#基础谈(三)---- 从"Hello World"说起

阅读更多

接着上一讲,我们新建了一个名为"CSharpBasic"的控制台工程,首先看一下VS中的代码编辑区域,默认打开的是Program.cs这个文件,VS为我们自动添加的代码如下(由于我是用VS2008新建的,所以引入的命名空间与VS2005有所不同):

下面我们来讲解一下这个最基本的程序代码。

1、using语句:在这个文件的最上部,看到有4行以using打头的代码,它们代表的意义为引入”using“后面的命名空间,那么什么是命名空间呢。首先来看看MSDN中的解释:

命名空间是一种组织 C# 程序中出现的不同类型的方式。命名空间在概念上与计算机文件系统中的文件夹有些类似。与文件夹一样,命名空间可使类具有唯一的完全限定名称。一个 C# 程序包含一个或多个命名空间,每个命名空间或者由程序员定义,或者作为之前编写的类库的一部分定义。

什么意思呢?我们用比较通俗的话来解释一下吧,比如 一个屋里有两个人,名字分别是”李明“和”张明“,那如果我们直叫”明“,他们俩就不知道我们叫的是谁,这是我们就要叫全名,比如”李明“,这样,李明就能知道我们叫的是他,名”明“就好比C#的类,姓”李“和”张“就好比是不同的命名空间,当只有一个叫做”明“的人的时候,我们可以只叫”明“即可,但如果同时存在好几个”明“的时候,我们就要叫他们的全名了。可能有人会说了,那如果有好几个人都叫”李明“咋办?同样的道理,这时候,”李明“就是一个类,我们就要在这个类之前再加一个命名空间,比如”三年二班的”李明,“四年一班”的李明,等等……如果还在一个班里,那就再加上其它的命名空间,如:坐第几排第几列的,等等……直到它们的全名唯一为止。叫全名肯定是比较妥当的了,但要每一个都写全名,那会相当复杂和麻烦的,所以,using 语句就帮了我们一个大忙,可以把要用到的命名空间名称写到using后面,那么在这个cs文件中,要使用到这个命名空间下面的类时,直接输入类名即可,而不用写全名了,当然,如果碰到引入的命名空间下有类名重复的情况的时候,在用这些类时,还要把它们的全名都写上,不然,编译器无法知道你调用的是哪个类。.net类库中已经预先定义了一部分命名空间了,如这个例子的头四行,就是.net类库预定义的命名空间。也就是说,我们可以在这个文件里直接写System,System.Collections.Generic,System.Linq,System.Text这四个命名空间下的类,而不用再写命名空间的名称了。那么,using是否只能写在cs文件的最顶头呢?我们来试试把它们移动一下位置,把它们移到最下面:

运行程序,看到编译失败,提示错误: using 子句必须位于命名空间中定义的所有其他元素之前(外部别名声明除外)

看来是不行哦,我们还是老老实实地写在namespace之前吧~~

2、本程序的命名空间:知道了命名空间的作用之后再来看看namespace CSharpBasic这句代码,这句话的意思是为下面的类Program定义一个命名空间,名称为CSharpBasic,这个是VS根据我们的工程名为我们自动创建的,我们当然可以将其改为我们自己喜欢的名字,一般都是以本公司的名称或工程的类型来命名的,这里我起名为ojlovecd。

3、类名称:啥是类?先来看看MSDN对类的定义:类是 C# 中功能最为强大的数据类型。像结构一样,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。与结构不同,类支持继承,而继承是面向对象编程的基础部分。


去除定状补,就变成了“类是数据类型”,那什么是数据类型?再来看看MSDN对数据类型的定义:

数据类型概述

类型可描述为:

  • 内置数值类型(如 intchar),或

  • 用户定义类型(如 classinterface)。

  • 匿名类型,它由一组封装在无名称引用类型中的公共属性组成。

  • 类型还可以定义为:

  • 值类型(C# 参考)(用于存储值)。这些类型包括基元数值类型、枚举和结构,还包括这几种类型的可以为 null 的版本。

  • 引用类型(C# 参考)(用于存储对实际数据的引用)。这些类型包括类、接口、数组和委托。

C# 是强类型语言;因此每个变量和对象都必须具有声明类型。啥意思呢?也就是说,在C#里面,你使用的任何变量或对象,都必须是某一个数据类型,不存在没有数据类型的变量或对象。这就好比这世界上某一个新生命的诞生,它肯定是属于某一个物种的。类型包括.net类库内置的数值类型,用户自定义类型和匿名类型(匿名类型为C#3.0新增的特性),我们这里的类,就属于用户自定义类型,关于类的详细介绍,我们将在以后进行。跟命名空间一样,类名也是我们可以自由更改的,它可以和命名空间的名称起同一个,我们这里把Program也改成ojlovecd。

4、程序入口点Main方法:“函数”一词在C#里已经改名为了“方法”,Main方法是C#程序的入口点。运行程序的时候,系统将会调用Main方法来启动我们的应用程序,那么,Main方法能否改名呢?我们来试试,把Main方法也改成ojlovecd试试:

运行代码,程序出错,错误为: “ojlovecd”: 成员名称不能与它们的封闭类型相同
看错误信息,是告诉我们成员的名称不能与类名相同,那我们再改个别的名称看看,比如说改成CSDN:

再次运行,还是出错,错误为: 程序“C:\Documents and Settings\区健\My Documents\Visual Studio 2008\Projects\CSharpBasic\CSharpBasic\obj\Debug\CSharpBasic.exe”不包含适合于入口点的静态“Main”方法
看来是不行的,也就是说程序不仅必须包括Main方法,而且Main方法还必须是静态的。那什么是静态的?就是关键字static所修饰的成员,有什么作用呢?我们以后再讲。

把CSDN改回Main,我们在Main方法体(就是用话括弧{}包含的那部分)中,输入如下代码:

按下Ctrl+F5,就可以生成我们的第一个应用程序了,如下图:

第一个应用程序

至此,我们的第一个应用程序创建并运行成功了,在下一讲中,我们将会讲解关于这个程序的更多有用信息。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics