命名空间
C#程序结构基本可以包括以下几个类别
注释块、命名空间、类、方法、标识符、关键字和语句
今天我们来说一说命名空间是咋个一回事
C#程序结构中有很多的命名空间,每个命名空间相当于一个大大的仓库,当然这个仓库是摸不到的,但是能够看的到,它是一个逻辑结构,而非物理结构。C#程序就是利用各种命名空间组织起来的,而实际上命名空间能够将两个相同名称的类分开,这与我们计算机文件夹的建立是相似的,也就是同一文件夹下的文件不能重名,而不同文件夹下的文件可以重名
在C#程序中,如果想要调用某个命名空间下的某个类或者方法,这时候起关键作用的using指令登场了,这个指令的作用就是将仓库里面存储的东西拿出来,也就是将相应的命名空间中的成员导入到当前编译单元中,这时我们在编写C#程序时,就可以直接使用这个空间中的成员了,而不用去使用它的完全限定名称,但是当我们所使用的命名空间中的类有重名时,这时仍然要使用这个类的完全限定名称
下面举个简单的例子,大家就会很容易明白的
首先创建一个控制台应用程序
using System;//System命名空间是系统已经定义好的命名空间,可以直接使用namespace namespace1//用户自己定义的命名空间,可以按照需求进行使用{ class Program//用户在命名空间中自己定义的类,实现某一特定功能 { static void Main(string[] args) //程序入口 { Console.WriteLine("命名空间的学习和理解");//实现输出一条信息 Console.ReadLine();//等待读入信息 } }}
运行程序的结果:
这里面用到了System命名空间下的Console类,System中已经定义好了Console类,如果我们不在前面使用using System,这里面就要用到它的完全限定名称了System.Console.WriteLine()
下面我们来看一下如何使用用户自己定义的命名空间中的类
using System;//System命名空间是系统已经定义好的命名空间,可以直接使用using namespace2;//用户自己定义的命名空间namespace2namespace namespace1{ class Program { static void Main(string[] args) //程序入口 { p2 n = new p2();//对用户自己定义的类进行实例化 n.s1();//使用用户自己定义的类中的方法 } }}namespace namespace2//用户自己定义的命名空间{ class p2//用户自己定义的类 { public void s1()//用户自己定义的类中的方法,根据自己需求编写代码 { Console.WriteLine("使用用户自己定义命名空间中的类");//用户所要实现的功能就是输出这么一条信息,这里面也用到了系统定义好的命名空间中的Console类 Console.ReadLine(); } }}
运行程序的结果:
这个例子,如果在前面我们不引用用户自定义的命名空间:using namespace2,那么程序就会报错:
类
上面的实例中提到了类的概念,那么类到底是什么呢?
C#的类,是一种数据结构,它里面装着各种成员,它是C#语言的核心和基本构成模块,它的大的特色是用户不仅可以使用系统已经定义好的类,也可以使用用户根据自己需要自己定义的类。
我们在使用新的类之前,必须要事先声明这个类,声明类的关键字是class,通过上面声明的p2类,就能够看出类的声明格式,
class p2//用户自己定义的类 { public void s1() { Console.WriteLine("使用用户自己定义命名空间中的类"); Console.ReadLine(); } }
main方法
main方法是程序的入口处,C#程序中必须包含一个,而且是的一个main方法,它也是一个类的成员,由于程序启动时,还没有创建类的对象,所以它必须是静态的,上面main方法的修饰符static表示main方法是一个静态方法,调用这个方法不能使用实例化对象,而是直接使用类名来调用;void表示这个方法没有返回值
static void Main(string[] args) { p2 n = new p2(); n.s1(); }
标识符和关键字
标识符就是系统或者用户自己定义的类、方法或者变量的名称,能够从字面上理解它的作用,这样方便我们使用,例如上面的Console、namespace1、s1等都是标识符,标识符的书写有几个规则:一是标识符只能由数字、字母和下划线组成;二是它必须以字母或者下划线开头;三是它不能是关键字,所谓的关键字就是系统的保留字,例如上面的static、void和public都是关键字,这些关键字不能够命名标识符;
代码注释块
为了方便我们写的代码具有可读性,代码注释块是经常使用的,编译器在编译程序时是不执行注释块中的内容的,这里面注释块有三种,一是单行注释,使用"//";二是多行注释,使用"/*...*/";三是给代码段添加说明,使用"///"给一段代码来添加说明