当尝试从另一个类访问名为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
}
我稍后在switch
上执行monster
,每次使用Monsters.Zombie
,Monsters.Skeleton
等时似乎都没问题。我还有其他几个{ {1}} enums
中的{1}}一切正常,事实上,我在这个类中使用了完全相同的代码。
到目前为止,我已尝试更改枚举Zadify.Enums
并向新namespace
添加using
,将namespace
复制到另一个文件中,清理项目并重建百倍。我正在使用Visual Studio 2010并编写Mono for Android应用程序,尽管这些类中没有Android代码。
在构建之前,Visual Studio似乎没有问题。事先,intellisense工作正常,如果我取出Monsters
行,它会询问我是否想要引用它,然后按住ctrl +单击它会将我带到正确的文件中。
如果我还应提供其他任何代码,请与我们联系。
答案 0 :(得分:1)
@ ZAD-Man,检查您的客户端配置文件设置。
是否设为.Net Framework xx Client Profile
?在Visual Studio默认我的项目之前,我遇到了一些奇怪的问题...尝试将其更改为.Net Framework 4
而没有客户端配置文件部分,看看它是否有效。
您正在寻找的屏幕与此类似:
答案 1 :(得分:0)
它可能发生的原因是该类没有被添加到类库中。还要检查引用是否已添加此classlibrary。
答案 2 :(得分:0)
事实证明我只是犯了一个愚蠢的错误。我在另一个项目中添加了Goal.cs
作为链接,但忘记链接我的枚举。另一个没有问题的唯一原因是因为它被Monsters
抓住而没有看到其他人。由于它是一个链接,点击异常只是让我进入真正的Goal.cs
,所以我认为问题出在该项目中,但如果我仔细观察,我会看到它是另一个项目。
答案 3 :(得分:0)
我有这个。问题是引用项目意外将其目标更改为x86,而枚举项目目标仍为Any CPU。