2013-02-26 30 views
1

當試圖從另一個類訪問名爲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 
     } 

後,我做了switchmonster,它似乎要被罰款每次我使用Monsters.ZombieMonsters.Skeleton等。我也有其他enumsZadify.Enums所有工作正常,事實上,我在這個類中使用完全相同的代碼。

到目前爲止,我已經試圖改變枚舉的namespace並添加using到新namespace,複製Monsters到另一個文件,清理的項目,以及重建百倍。我使用Visual Studio 2010併爲Android應用程序編寫Mono,但這些類中沒有Android代碼。

Visual Studio在構建之前似乎沒有問題。事先,intellisense工作正常,如果我拿出using Zadify.Enums;行,它會詢問我是否想引用它,然後按Ctrl +單擊它將我帶到正確的文件。

如果還有其他代碼我應該提供,請告訴我。

+5

Zadify.Enums.Monsters是否定義在另一個程序集(讀取:Visual Studio項目)而不是Zadify.Goal? – Snixtor 2013-02-26 03:35:58

+2

你嘗試過使用Zadify.Enums.Monsters嗎?有沒有任何DLL參考問題?這段代碼編譯對我來說很好,因爲順便說一句。 – allen 2013-02-26 03:38:21

+0

對我來說也是一樣。最有可能的原因是@Snixtor所說的......如果你的Monsters枚舉與你的目標類不同,你需要添加一個項目引用。 – 2013-02-26 03:45:57

回答

0

因此,原來我只是做了一個愚蠢的錯誤。我在另一個項目中添加了Goal.cs作爲鏈接,但忘記鏈接我的枚舉。對方沒有問題的唯一原因是因爲Monsters被抓到而沒有看到其他人。既然它是一個鏈接,那麼點擊這個例外只是把我帶到了真正的Goal.cs,所以我認爲這個問題在那個項目中,但是如果我看得更近,我會看到它是另一個項目。

0

它可能發生的原因是該類沒有被添加到類庫中。同時檢查引用是否添加了該類庫。

+0

我該如何去檢查這兩件事? – 2013-02-26 04:12:20

+0

在解決方案資源管理器中,您可以在項目節點下找到References節點。在參考資料中,您將能夠找到其中引用的類庫。 – 2013-02-26 04:31:52

+0

嗯,這是我自己的代碼,在同一個項目中,所以沒有什麼可以參考的。 – 2013-02-26 04:40:23

1

@ ZAD-Man,檢查您的客戶配置文件設置。

  1. 右鍵單擊該項目
  2. 你應該應用程序選項卡上
  3. 看目標框架下拉

是將其設置爲.Net Framework xx Client Profile?在Visual Studio默認我的項目之前,我遇到了一些奇怪的問題......嘗試將其更改爲.Net Framework 4,但沒有客戶端配置文件部分,並查看它是否有效。

你要找的畫面與此類似:

enter image description here

+0

啊,是的,實際上,我曾經想過目標框架不知何故被關閉了,但是這是一個「MonoDroid」項目讓事情有點棘手的地方......它有自己的配置文件(顯然與Silverlight非常相似) ,儘管我看到這個問題的唯一出路是嘗試引用4.0 dll和類似的東西。無論如何,它給了我選擇哪個最低Android版本的目標,但我現在不能真正改變,我懷疑它無論如何與它有關。 – 2013-02-26 06:07:39

+0

感謝您的幫助!事實證明,我只是犯了一個愚蠢的錯誤,其實我曾犯過一個愚蠢的錯誤,但我沒有從中吸取教訓。 :P見我的答案。 – 2013-02-26 22:34:51

相關問題