新手对于 namespace 不太理解,帮忙解释:
在同个 solution下的两个namespace A 和 namespace B 中,都有 Persona 类,我想在 namespace A 中使用 namespace B 中的 Person ,请问我 在 namespace A 中 using B;为什么不行哈?

解决方案 »

  1.   

    可以using,但using不能在namespace A{}的大括号中,必须在大括号之外,没有为什么,c#语法如此,
      

  2.   

    因为你重名了,C#查找顺序是这样的,如果本命名空间有,就认为是本命名空间的,否则看using的空间,再之后找不到就报错了。看下面的代码:
    Program.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace ConsoleApplication1
    {
        using namespace2;    class Class1
        {
            public void foo() { Console.WriteLine("ConsoleApplication1.class1.foo()"); }
        }    class Program
        {
            static void Main(string[] args)
            {
                Class1 c = new Class1();
                c.foo();
                namespace2.Class1 c1 = new namespace2.Class1();
                c1.foo();
            }
        }
    }class1.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace namespace2
    {
        class Class1
        {
            public void foo() { Console.WriteLine("namespace2.class1.foo()"); }
        }
    }运行
    ConsoleApplication1.class1.foo()
    namespace2.class1.foo()
    Press any key to continue . . .
      

  3.   

    不是不是,我是放在 namespace A{} 的外部,
      

  4.   

    2楼说的对,要先添加引用,然后才能 using
      

  5.   

    我刚刚试试,如果不reference的话,也能找到,但是会抛出异常。如果添加引用则可以没有using。谢谢大家哈···