gpt4 book ai didi

C# 命名空间结构迫使我使用别名

转载 作者:行者123 更新时间:2023-12-04 16:50:58 27 4
gpt4 key购买 nike

我在玩命名空间并遇到了一个我无法真正理解的问题。

我在给定类库中的命名空间结构如下:

Namespace History
Namespace History.Antiquity
Namespace History.Antiquity.East
Namespace History.Antiquity.West

当在声明命名空间 History 的源文件中时,我不能使用 History.Antiquity.East 下定义的任何类型。或 History.Antiquity.West没有完全限定它们,或者没有以“Antiquity”开头限定它们。

示例代码:

例如,下面给出了一个编译时错误(假设在 History.Antiquity.East 中定义了“波斯”类型):
using History.Antiquity;

namespace History
{
public class foo
{
public foo()
{
East.Persia.Conquer(); // error!
}
}

}

我需要完全限定波斯,或者从古代开始限定它。或者,我可以引入一个别名:
using East = History.Antiquity.East;

实际问题:

我似乎无法理解的是为什么这个命名空间结构有问题。 .Net 怎么会发现它有冲突呢?

最佳答案

您必须打开一个命名空间才能在 C# 中查看它的类型。来自子命名空间的类型不会自动可见。因此,将以下内容放在代码文件的顶部:

using History.Antiquity.East;

然后你可以直接访问你的类型,如下所示:
Persia.Conquer();

顺便说一下,您的代码示例看起来像是 VB、C# 和 C++/CLI 的混合体……您实际使​​用的是什么语言?

关于C# 命名空间结构迫使我使用别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6553082/

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