- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二讲命名空间
命名空间(namespace)
在之前的学习中提到过命名空间(namespace),而且在所有的示例中都使用了System这个命名空间。System命名空间包含有大量的系统方法和类,.NET框架就是使用命名空间来组织和交流程序代码的。
学习重点:
理解命名空间的含义和C#应用程序的组织结构
掌握命名空间的定义和有效使用范围
掌握using语句的使用方法
12.1 命名空间
命名空间是用来限定名称的解析和使用范围的。比如,当我们处于家庭环境下,可以直呼小名;在工作单位就必须称呼全名;如到外地出差,还必须说明本人是某地某单位的某人。这其中,家庭、单位和外地就是不同的命名空间,也就是说,同一个人在不同的环境或场合(命名空间)下对他的称呼是不同的。
C#使用命名空间来管理和组织代码(管理各种类)。
12.2 定义命名空间
使用namespace关键字定义一个命名空间,格式为:
namespace 命名空间名
{
…….//命名空间的成员(其他命名空间或者类的定义
}
其中:
“命名空间名”是C#合法的标识符。也可以是用点运算符来构成命名空间的完全限定名。
在默认的情况下,命名空间具有public访问属性。不允许在定义命名空间时使用任何访问修饰符。
“命名空间的成员”可以是另一个命名空间或类型(类、结构、接口、枚举和代理)的定义。如果类型是命名空间的成员,则该类型只能具有public或internal访问修饰符,其中internal是默认的访问权限。
例:定义一个计数器命名空间
namespace Counter
{
class DownCount
{
int v;
public DownCount(int n) { v = n; }
public void reset(int n) { v = n; }
public int count()
{
if (v 0) return v--;
else return 0;
}
}
}
说明:C#语言中,如果程序不定义命名空间,系统也将使用缺省的命名空间 System.Globalization( 全局命名空间)。如果使用VS模板创建C#应用程序,会自动为我们定义一个与项目名字相同的命名空间,并把类组合在这个命名空间中。
12.3 使用命名空间
12.3.1 命名空间的完全限定名
我们通常使用命名空间的完全限定名来表示层次的命名空间。例如:
namespace N1
{
namespace N2
{
class A
{ }
class B
{ }
}
}上述语句等价于
namespace N1.N2
{
class A { }
class B { }
}
也等价于
namespace N1.N2
{
class A { }
}
namespace N1.N2
{
class B { }
}
在相同的命名空间不能存在名字相同的类型或命名空间;如果类型或命名空间位于不同的命名空间中,它们可以具有相同的名字。
namespace N1.N2
{
class A { }
class B { }
}
namespace N1.N3
{
class A { }
class B { }
}
以下代码中有嵌套的类和命名空间,可以用命名空间和类的完全限定名来表示程序的嵌套关系。
namespace N1 //N1
{
class C1 //N1.C1
{
class C2 //N1.C1.C2
{ }
}
namespace N2 //N1.N2
{
class C2 //N1.N2.C2
{ }
}
}
命名空间N1是全局命名空间的一个成员,它的完全限定名就是N1。命名空间 N2 是N1的成员,它的完全限定名就是N1.N2。类C1是 N1 的一个成员,它的完全限定名就是N1.C1。
12.3.2 C#应用程序的组织结构
C#程序由一个或多个文件组成,每个文件可以包含一个或多个命名空间,而每个命名空间又可以包含各种数据类型,如类、结构、接口、枚举和代理,甚至包含其他命名空间。
C#程序的基本框架如下:
using System; //引入命名空间
namespace MyNamespace1 //自定义命名空间
{
class MyClass1 { } //定义类
st
文档评论(0)