當試圖從另一個類訪問名爲Monsters的enum
時,Visual Studio給我提供錯誤「找不到類型或名稱空間名稱」怪物「(是否缺少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
等。我也有其他enums
Zadify.Enums
所有工作正常,事實上,我在這個類中使用完全相同的代碼。
到目前爲止,我已經試圖改變枚舉的namespace
並添加using
到新namespace
,複製Monsters
到另一個文件,清理的項目,以及重建百倍。我使用Visual Studio 2010併爲Android應用程序編寫Mono,但這些類中沒有Android代碼。
Visual Studio在構建之前似乎沒有問題。事先,intellisense工作正常,如果我拿出using Zadify.Enums;
行,它會詢問我是否想引用它,然後按Ctrl +單擊它將我帶到正確的文件。
如果還有其他代碼我應該提供,請告訴我。
Zadify.Enums.Monsters是否定義在另一個程序集(讀取:Visual Studio項目)而不是Zadify.Goal? – Snixtor 2013-02-26 03:35:58
你嘗試過使用Zadify.Enums.Monsters嗎?有沒有任何DLL參考問題?這段代碼編譯對我來說很好,因爲順便說一句。 – allen 2013-02-26 03:38:21
對我來說也是一樣。最有可能的原因是@Snixtor所說的......如果你的Monsters枚舉與你的目標類不同,你需要添加一個項目引用。 – 2013-02-26 03:45:57