命名空间中的类声明

时间:2011-12-20 07:30:33

标签: c# .net namespaces

是否可以在C#中声明一个只能在其名称空间中使用的类?

示例:

namespace a
{
    public class Dog
    {
        public void sayHello()
        {
            System.Console.WriteLine('hello');
        }
    }
}

namespace b
{
    public class DogWalker        
    {
        public void Walk() 
        {
            Dog dog = new Dog();
            dog.sayHello();
        }
    }
}

namespace a
{
    public class DogWalker
    {
        public void Walk() 
        {
            Dog dog = new Dog();
            dog.sayHello();
        }
    }
}

在上面的情况下,命名空间b中的DogWalker应该在编译时抛出错误消息,但是应该允许命名空间a中的DogWalker,因为它在与Dog相同的命名空间中。

如果有人能指出正确的方向,我们将非常感激。

4 个答案:

答案 0 :(得分:5)

您可以通过将类分成不同的程序集并将它们声明为internal来实现此目的。

答案 1 :(得分:0)

  

是否可以在C#中声明一个只能使用的类   在其命名空间内?

是。将您的课程标记为internal

答案 2 :(得分:0)

答案 3 :(得分:0)

您需要将类的“公共”访问修饰符更改为“内部”。