主要是提供名字界限,用来避免名字冲突的譬如你叫张三,另一个人也叫张三,怎么区分你们俩呢?我们可以用你们的出生地来区分,我们可以叫你是江苏的张三,他是湖北的张三。如果你们俩同是江苏的,我们可以叫你是南京的张三,他是扬州的张三。这里的地名就是一种命名空间,你们俩在不同的命名空间(地名)里,这样我们就可以区分你们俩了如果你们俩是同一大学的,但不同系,那么我们可以叫你是物理系的张三,他是数学系的张三。这里的系名就是一种命名空间,你们俩在不同的命名空间(系)里,这样我们就可以区分你们俩了通过命名空间我们可以从逻辑上把一个系统分类,譬如把跟Web有关的东西放一起(System.Web),把Windows有关的东西放一起(System.Windows.Forms)在Web中我们有一个类叫Control,在Windows中我们也有一个类叫Control,我们怎么区分它们呢?用所属的命名空间,System.Windows.Form.Control类与System.Web.UI.Control类是不同的类别

解决方案 »

  1.   

    意名称空间,解决相同类名或其他数据类型的冲突。
    加上了namespace可以把使用的类限定在某命名空间上!
    如:在a空间有类名ClassTest
        在b空间也有类名ClassTest
    可以这样区别:
    a.ClassTest
    b.ClassTest通过Name导入名称空间你可以省略前面部分:
    如:
    类a.ClassTest
    如果在文件上面加入using a
    类可以写成ClassTest
      

  2.   

    namespace 关键字用于声明一个范围。此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。namespace name[.name1] ...] {
       type-declarations
    }
    此处: name, name1 
    命名空间名可以是任何合法的标识符。命名空间名可以包含句号。 
    type-declarations 
    在一个命名空间中,可以声明一个或多个下列类型: 
    另一个命名空间 
    class 
    interface 
    struct 
    enum 
    delegate 
    备注
    即使未显式声明命名空间,也会创建默认的命名空间。该未命名的命名空间(有时称为全局命名空间)存在于每一个文件中。全局命名空间中的任何标识符都可用于命名的命名空间中。命名空间隐式具有公共访问权,并且这是不可修改的。 有关可以分配给命名空间元素的访问修饰符的论述,请参阅访问修饰符。在两个或更多的声明中定义一个命名空间是可以的。例如,下面的示例将两个类都定义为 MyCompany 命名空间的一部分:namespace MyCompany.Proj1 
    {
       class MyClass 
       {
       }
    }namespace MyCompany.Proj1 
    {
       class MyClass1 
       {
       }
    }
    示例
    下面的示例显示了如何在嵌套的命名空间中调用静态方法。// cs_namespace_keyword.cs
    using System;
    namespace SomeNameSpace
    {
       public class MyClass 
       {
          public static void Main() 
          {
             Nested.NestedNameSpaceClass.SayHello();
          }
       }   namespace Nested   // a nested namespace
       {
          public class NestedNameSpaceClass 
          {
             public static void SayHello() 
             {
                Console.WriteLine("Hello");
             }
          }
       }
    }
    输出
    Hellofrom .net Help
      

  3.   

    命名空间有点象操作系统里的文件夹,能够对类名方便的管理。
    此外,命名空间还象c语言里的#include
      

  4.   

    个人粗浅的认为,命名空间就是微软把各种.net预编写好的各种类按照其功能进行分类的一些集合。比如常用的System命名空间,它包含常用的I/O类Console和常用的数学函数类math。(个人浅见,不值一提哈}
      

  5.   

    c# primer plus上面对namespace有很详细的很精确的解释,建议兄弟看看