c#中的命名空间作用域

本文关键字:作用域 命名空间 | 更新日期: 2023-09-27 17:51:06

名称空间是否也定义了类中的作用域?

  1. 例如,我有一个默认情况下由解决方案命名的命名空间。比如在Program.cs中命名空间的名字是"MySolution"
  2. 在我创建的下一个文件接口中,命名空间的名称是"Interfaces"

当我回到类,实现这个接口时,它不在作用域中(我无法在智能感知中找到它)。所以如果类有一个命名空间,接口有第二个命名空间,那么我就不能在类中使用它。我认为名称空间仅用于组织类(如姓氏),但我猜它也定义了作用域。

c#中的命名空间作用域

" namespace关键字用于声明一个包含一组相关对象的作用域。您可以使用名称空间来组织代码元素,并创建全局唯一的类型。" https://msdn.microsoft.com/en-us/library/z2kcy19k.aspx

要使用来自另一个名称空间的类、接口、结构、枚举、委托,您需要使用类型的完全限定名,或者在类的顶部使用using Interface;声明对该名称空间的引用。即:

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) 
        {
        }
    }
}