gpt4 book ai didi

c# - namespace 和使用范围解析

转载 作者:行者123 更新时间:2023-11-30 21:37:22 25 4
gpt4 key购买 nike

<分区>

我在 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 语句在 namespace 中公开类,但不公开也在同一级别找到的 namespace ?如果我放入 using Foo.Bar,它仍然会给出相同的错误。所以 using 语句可以看到命名空间,但它无助于它找到下面的引用。

现在,如果我输入 Foo.Bar.BarEnums.Bar1,它会正常工作。但是为什么我不必在 Foo.FooClass 之后输入与对枚举的引用相同的命名法?这仅仅是从命名空间内访问枚举与访问类之间的区别吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com