cap*_*gon 2 .net namespaces visual-studio
我在这四个不同的命名空间下有一堆类:
包含“myEnum”定义的两个类都不直接位于命名空间“ab”下。我在“abcx”和“abcz”中定义了“myEnum”,但出现以下错误:
命名空间“ab”已包含 myEnum 的定义。
为什么是这样?我该如何解决?
编辑:
嗯,我修好了。显然,在命名空间中我不能有像“ab202.x”这样的数字。这就是它所抱怨的。有谁知道为什么?
显然,在命名空间中我不能有像“ab202.x”这样的数字。这就是它所抱怨的。有谁知道为什么?
与您不能声明的原因相同int 202;- 在 C# 中标识符不能以数字开头。
编辑:
这是尝试通过重现它来解释您的特定(奇怪)编译器错误。
以下代码:
namespace a.b
{
enum myEnum {}
}
namespace a.b.202.x
{
enum myEnum {}
}
Run Code Online (Sandbox Code Playgroud)
因好奇(对我而言)错误而失败:
{ expected
The namespace 'a.b' already contains a definition for 'myEnum'
Run Code Online (Sandbox Code Playgroud)
我推测其原因是错误的标识符使编译器将第二个命名空间声明视为“格式错误”,而忽略了.202.x. 如果是这样,那么编译器确实应该认为第二种myEnum类型在 namespace 中a.b,这当然是重复的。
如果您完全摆脱第一个命名空间(及其中的枚举)并重新编译,您将看到第二个枚举类型的完全限定名称被推断为a.b.myEnum(尽管编译失败)进一步支持这一点)。

| 归档时间: |
|
| 查看次数: |
2082 次 |
| 最近记录: |