日期:2014-05-17  浏览次数:20805 次

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

------解决方案--------------------
右击项目名,添加引用,选择“项目”,B对应的项目。
------解决方案--------------------
可以using,但using不能在namespace A{}的大括号中,必须在大括号之外,没有为什么,c#语法如此,
------解决方案--------------------
因为你重名了,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 . . .
------解决方案--------------------
2楼说的对,要先添加引用,然后才能 using