【发布时间】:2013-02-11 10:01:31
【问题描述】:
当尝试从另一个类访问名为 Monsters 的 enum 时,Visual Studio 给我错误“找不到类型或命名空间名称‘Monsters’(您是否缺少 using 指令或程序集引用? )”,尽管在我的班级中有关联的 using。
这是我的枚举代码:
namespace Zadify.Enums
{
public enum Monsters
{
Zombie,
Skeleton,
Mummy,
Robot,
Demon
}
}
这是我需要访问的班级:
using System;
using System.Xml.Serialization;
using Zadify.Enums;
namespace Zadify
{
[Serializable]
public abstract class Goal
{
//Properties, Other methods
public void AssignMonsterData(int rank)
{
var random = new Random();
var monsterTypeValues = Enum.GetValues(typeof (Monsters)); //Gives the error on "Monsters" here
var monster = (Monsters) monsterTypeValues.GetValue(random.Next(rank - 1)); //Also gives the error on this "Monsters"
//Do other stuff
}
我后来在monster 上做了一个switch,每次我使用Monsters.Zombie、Monsters.Skeleton 等时似乎都很好。我在Zadify.Enums 中还有其他几个enums工作正常,事实上,我在这个类中使用了完全相同的代码。
到目前为止,我已经尝试更改枚举的namespace 并将using 添加到新的namespace,将Monsters 复制到另一个文件中,清理项目并重建一百次。我正在使用 Visual Studio 2010 并为 Android 应用编写 Mono,尽管这些类中没有 Android 代码。
在我构建之前,Visual Studio 似乎没有问题。事先,intellisense 工作正常,如果我取出 using Zadify.Enums; 行,它会询问这是否是我要引用的内容,然后 ctrl+单击它会将我带到正确的文件。
如果我应该提供任何其他代码,请告诉我。
【问题讨论】:
-
Zadify.Enums.Monsters是否定义在与Zadify.Goal不同的程序集(阅读:Visual Studio 项目)中? -
你尝试过使用 Zadify.Enums.Monsters 吗?是否有任何 dll 引用问题?顺便说一句,这段代码对我来说编译得很好。
-
他们在同一个项目中。 :/ 我没有引用任何外部 dll。
Monsters.cs位于名为Enums的文件夹中,而Goal.cs仅位于根目录中。我在本课程中使用的所有其他枚举也在Enums中。 -
哦,@allen,对不起,我没有回答你的第一个问题。是的,我尝试使用
Zadify.Enums.Monsters。它给出了同样的错误。 -
我没有提到的另一件事(但现在已经更新了我的问题) - 在我构建之前,Visual Studio 似乎没有问题。事先,智能感知工作正常,如果我取出 using
Zadify.Enums;行,它会询问这是否是我要引用的内容,然后 ctrl+单击它会将我带到正确的文件。
标签: c# visual-studio enums xamarin.android