`
webcenterol
  • 浏览: 913997 次
文章分类
社区版块
存档分类
最新评论

C#名称空间

 
阅读更多
名称空间是从C++借鉴而来的概念,它有助于确保在一个特定程序或项目中使用的所有名称是唯一的。程序员在大型项目中缺乏适当的全局名称或者必须使用具有名称冲突的第三方类库这样的情况有时就会出现。例如,您可能在使用C#编写一个大型项目,并且从Bovary Enterprises和Karenina Software购买两个DLL形式的有用类库。这两个库都包含一个名为“SuperString”的类,虽然它们在每个DLL的实现完全不同,但是两个版本对您都有用。幸运的是,这种重复不是个问题,因为这两家公司都遵循了C#名称空间命名规则。Bovary将其Superstring代码放在一个如下示例的名称空间定义中:

Karenina的做法类似:

这两种情况中,首先都是公司名称,后面跟随一个产品名称。在使用这些库的程序中,您可以使用完全合格的名称引用所需的特定的SuperString类:

BovaryEnterprise.VeryUsefulLibrary.SuperString

KareninaSoftware.HandyDandyLibrary.SuperString

是的,虽然键入的字符的数量很多,但它是一种很有效的方法。

如果还没有一种减少键入人工作的方法,那么这种名称空间的特性就相当的不利。这就是using关键字的用途。一旦在using语句指定一个名称空间,您就可以避免通过键入那个空间名称来引用其中的类。下面是另一种形式的C# HelloWorld程序:

对于使用两个不同的SuperString类的项目,using关键字包括了一个非常用帮助的别名特性:

using Emma=Bovary.VeryUsefulLibrary;

using Anna=Karanina.HandyDandyLibray;

现在您可以向这样引用这两个类:

Emma.SuperString

Anna.SuperString

有关using特性的更多细节,请查阅C#语言参考。

.NET Framework定义了90多个以单词System开始的名称空间和5个以单词Microsoft开始的名称空间。本篇最重要的名称空间是System本身。包含许多有关图形的类的Sytem.Drawing和System.Windows.Forms。

名称空间甚至允许您为已经在.NET Framework 中使用类赋予自己的名称。.NET Framework也重用一些类名。例如,它包含三个名为“Timer”的类。您可以以在名称System.Timer、Sytem.Threading和System.Windows.Forms中找到这三个类。

对于没有使用名称空间定义的类(比如我的程序中的ConsoleHelloWorld和ConsoleHelloWithUsing),将出现什么情况呢?那些类名将进入一个“全局名称空间”。对于我的程序这样的自包含的小程序,这不是问题。不过,无论我何时在本篇中定义一个在其他人的程序中有用的类,我将其放在名称空间youhaoxinqin.ProgrammingWindowsWithCsharp中

分享到:
评论

相关推荐

    修改c#类的命名空间名称

    内容概要:能够批量修改c#语言,类的命名空间。可以检测文件夹下命名空间名称是否相同,不同的命名空间名称通过树状结构显示。 适合人群:多应用于合并项目、拷贝项目、修改目录结构时使用。 使用建议:建议只修改一...

    AE C# 空间查询(基于点,线,面)

    AE C# 空间查询(基于点,线,面)带有实验数据,适合初学者

    C#命名空间实例附CS代码

    命名空间在多个面对对象的语言中有应用,例如JAVA,C ,C#。本文主要记录了在C#中如何调用不同命名空间的public class。...在同一命名空间中,不能有名字相同的函数与类,但是在不同的命名空间中可以有相同名称的类。

    C# 语法全解C#词法结构C#语句

    C# 语法全解C# 程序是利用命名空间组织起来的。命名空间既用作程序的“内部”组织系统,也用作“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法)。 using 指令(第 9.3 节)是用来使命名空间用起来更...

    C#。Net名字空间纵览

    C#。Net名字空间纵览,这里可以给你详细讲解

    unity c#批量修改命名空间工具

    unity c#批量修改命名空间工具

    C#应用socket示例

    C#应用socket进行网络通信的示例。

    C#编程从入门到精通

    名称空间;类的入门;类的继承;多态性;属性;索引指示器。第二部分是本书的重点,精选了大量C#实用例程来让读者更深入地理解C#,同时这些C#例程都是经过专业程序员测试,可以直接实用,从而大大缩短编程时间,提高...

    C#语言入门详解003初识类与名称空间

    C#语言入门详解003初识类与名称空间

    DLL 导出名称空间

    该文档中有三个示例,分别讲述了如何从一个DLL中导出名称空间中的函数,名称空间中的类与名称空间中的全局变量。每一个示例包括头文件,C++文件,C++测试文件与makefile。该资源系本人所写,无积分下载,可以自由...

    C#系列视频教程 现在软件开发-使用.NET与C#第二讲 类,组件和名称空间

    C#系列视频教程 现在软件开发-使用.NET与C#第二讲 类,组件和名称空间

    c#基础代码及习题,适合新手

    命名空间提供了一种方法来唯一标识一个类型以及进行类型的逻辑组织。命名空间可以嵌套使用并可以跨程序集使用。一个类型的完全限定名包括所有命名空间。...命名空间中的声明,C#与C++有所不同,是C#独有的特点

    Modern C#系列课程(2):类, 组和名称空间 (Level 200)

    本次课程将从在C#中的类、属性及方法的概述开始,我们讨论如何在C#中创建类,通过名称空间来有效组织类以及如何将类打包到组件中。我们还将比较静态成员和实例成员的特点,并了解如何在客户端使用组件。

    C#完全手册PDF高清文字版

    由于篇幅有限,本书重点讲述了包含在系统名字空间里的核心类库,这部分的内容几乎每个C#程序员都会用到。第三部分包括C#应用的实例。 本书内容由浅及深,适用范围广,同时适用于没有编程经验的读者和对C++或Java有...

    Modern C#系列课程(2):类, 组和名称空间

    Modern C#系列课程(2):类, 组和名称空间

    C# XAML MEF笔记

    这个x就是XAML的字头了 这个名称空间的本意就是告诉我们 这个名称空间里所装的元素都与XAML解析有关 比如 我在代码里还使用了x:Code 把本来应该呆在C#代码里的内容请到XAML里来了 5 <Window x:Class < 只...

    c#实现高亮显示xml文档

    c#实现的对xml高亮解析器,按照语法对关键字属性等进行高亮显示, 本程序是我从微软的网站上下载 下载的程序运行有点问题,经过了一些简单整理,现在可以运行 但注意本程序现在不支持对带用名称空间namespace的xml...

    C#GHI+编程初探.pdf

    推出的同时,出现l『很多诸如名字空间、wfn Fcmr~∞I+ 和dR等新概念、新机制 本文就向大家介绍一下C#下∞I+ 编程的—些基本知识 GDI+是从GDI演化而来的,但是在Visual Studio的 以前皈本中使用∞I是相当复杂的,而且...

    C#笔试卷子三份

    2. 在C#语言开发的程序中,现有类student 它所在的命名空间是my.school.models,以下说法错误的是()。 A. my.school.ui 命名空间下仍可以存在名称为student 的类 B. my.school.ui命名空间下使用student 时不需要引入...

Global site tag (gtag.js) - Google Analytics