说说C#中的命名空间_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 说说C#中的命名空间

说说C#中的命名空间

 2014/4/13 18:07:47  。流年。  博客园  我要评论(0)
  • 摘要:命名空间的声明:用namespace关键字用于声明一个命名空间。在命名空间的声明中不能包含任何访问修饰符。声明命名空间可以帮助控制类名称和方法名称的范围,防止命名冲突。命名空间是可以嵌套的。例如:namespaceA{namespaceB{}}或者namespaceA.B{}两者是等效的。命名空间的引用:使用using命令导入命名空间、或者通过完全的限定名。多数情况使用using是可以的。但是当两个命名空间存在相同类名时,怎么会导致编译时错误,此时就需要使用完全限定名
  • 标签:C#

命名空间的声明:

  namespace 关键字用于声明一个命名空间。在命名空间的声明中不能包含任何访问修饰符。声明命名空间可以帮助控制类名称和方法名称的范围,防止命名冲突。

  命名空间是可以嵌套的。

  例如:

  namespace A
  {
    namespace B
    {

    }

  }

 或者

  namespace A.B
  {
    

  }

  两者是等效的。

命名空间的引用:

  使用using命令导入命名空间、或者通过完全的限定名。多数情况使用using是可以的。但是当两个命名空间存在相同类名时,怎么会导致编译时错误

此时就需要使用完全限定名,还有一种办法就是使用using 为命名空间起别名。

  例如:  

  声明两个命名空间,都有相同的类Test。

  namespace A
  {
    public class Test
    {

    }

  }
  namespace B
  {
    public class Test
    {
    }
  }

  只是用一个命名空间的类,可以使用using指令,或者使用完全的限定名。

  例如:

  using A;

  namespace C
  {
    class Program
    {
      static void Main(string[] args)
      {
          Test a=new Test(); // 等价于完全限定名  A.Test A = new A.Test();
      }
    }
  }

  如果同时使用A,B两个命名空间的Test类,就会报错  “Test”是“A.Test”和“B.Test”之间的不明确的引用 

  using A;

  using B;

  namespace C
  {
    class Program
    {
      static void Main(string[] args)
      {
          Test a=new Test(); 

      }
    }
  }

  此时需要使用完全限定名来使用类Test。

  using A;

  using B;

  namespace C
  {
    class Program
    {
      static void Main(string[] args)
      {
          A.Test a=new A.Test(); 

      }
    }
  }

  这样就不会报错了。

发表评论
用户名: 匿名