C#中的命名空间作用域

4
命名空间的名称是否也定义了类中的作用域?
例如,我有一个默认命名为“solution”的命名空间。假设在Program.cs文件中,命名空间的名称是"MySolution";在我创建的下一个文件接口中,命名空间的名称是"Interfaces"。
当我返回到类中以实现此接口时,它不在作用域内(我无法在智能感知中找到它)。因此,如果类有一个命名空间,而接口有第二个命名空间,则无法在我的类���使用它。 我原本认为命名空间仅用于组织类(就像姓氏),但我想它还定义了作用域。

这是关于哪种语言或平台的内容? - Rengers
3
C#中,它确实定义了一个逻辑范围,但在Java中则同时定义了逻辑和物理范围(即包)。如果您想要在另一个命名空间中的另一个类中使用另一个命名空间中定义的接口,则必须在Program.cs类顶部使用using Interfaces - nIcE cOw
好的,那就是答案。谢谢。 - ExpertLoser
1个回答

5
"namespace"关键字用于声明一个包含一组相关对象的作用域。您可以使用命名空间来组织代码元素并创建全局唯一的类型。要使用来自另一个命名空间的类、接口、结构、枚举、委托,您需要使用该类型的完全限定名称,或在您的类顶部声明对该命名空间的引用,如:using Interface;。例如:" https://msdn.microsoft.com/en-us/library/z2kcy19k.aspx
using Interfaces;  //can reference namespaces here

namespace MySolution
{
    public class Program 
    {
        //or you can use the fully qualified name of the type
        public Program(Interfaces.MyInterface example) 
        {

        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接