【发布时间】:2017-11-15 02:10:48
【问题描述】:
我在 C# .NET Core 2.0 中遇到了一些我觉得奇怪的东西,我想知道这里发生了什么。
我有一个名为 FooBar.cs 的文件,它看起来像这样
namespace Foo
{
public class FooClass
{
}
namespace Bar
{
enum BarEnums
{
Bar1
,Bar2
,Bar3
}
}
}
我有一个看起来像这样的简单程序
using System;
using Foo;
namespace Using
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
FooClass fooClass = new FooClass();
Console.WriteLine(Bar.BarEnums.Bar1);
}
}
}
这给了我以下错误:
Program.cs(16,22): error CS0103: The name 'Bar' does not exist in the current context
我很困惑为什么 using 语句在名称空间中公开了类,但它没有公开也在同一级别找到的名称空间?如果我输入using Foo.Bar,它仍然会给出同样的错误。所以 using 语句可以看到命名空间,但它不能帮助它找到下面的引用。
现在,如果我输入Foo.Bar.BarEnums.Bar1,它会工作得很好。但是为什么我不必按照与枚举引用相同的命名法输入Foo.FooClass?这只是从命名空间中访问枚举与类之间的区别吗?
【问题讨论】: