2010-08-27 136 views
-1

我有枚舉命名空間:枚舉範圍申報錯誤

namespace Search 
{ 
    enum SearchConditionType 
    { 
     Like = 0, 
     EqualNotString = 1, 
     EqualString = 2 
    }; 
} 

然後我試圖聲明枚舉:

namespace Search 
{ 

    public partial class Controls_SelectYesNo : System.Web.UI.UserControl 
    { 

     public SearchConditionType Field; 
     ... 

而且得到了一個錯誤:

The type or namespace name '' could not be found (are you missing a using directive or an assembly reference?)

有什麼不對?

回答

0

問題在於:我從網站上製作了一個web應用程序。在網站中,枚舉位於App_Code文件夾中。當我重命名這個文件夾 - 問題消失。

1

使枚舉public

public enum SearchConditionType 
{ 
    Like = 0, 
    EqualNotString = 1, 
    EqualString = 2 
}; 

沒有在C#中的訪問修飾符默認爲internal類型。

如果這些文件位於不同的程序集中,則需要爲包含enum的程序集添加引用。這可以通過解決方案資源管理器中項目的References節點完成。

+0

它沒有幫助。 – Anton 2010-08-27 14:39:53

+0

Ahem:你的意思是「內部」 – Randolpho 2010-08-27 14:40:03

+0

@Randolpho - 我不想猜測這應該是內部的還是公共的。 Perhpas應該是公開的 - 取決於它用於什麼,它是否確實是內部實現細節。 – Oded 2010-08-27 14:40:43

3
enum SearchConditionType 

您的枚舉不公開。

+0

假設Controls_SelectYesNo和SearchConditionType在不同的程序集中,這可能是正確的答案 – 2010-08-27 14:40:31

+0

如何將它們放在同一個程序集中? – Anton 2010-08-27 14:40:34

+0

public enum不起作用。 – Anton 2010-08-27 14:41:34

0

嗯......你試圖公開內部類型作爲公共類型。這是我用你的代碼看到的唯一問題。但它不應該導致你提供的編譯器錯誤,所以我想可能這個問題是在你的代碼中的其他地方。

編輯:你是否試圖暴露另一個程序集中的枚舉?這會導致你列出的錯誤。所以,是的,只是讓枚舉公開。

+0

如何將它們放置在同一個程序集中? – Anton 2010-08-27 14:42:09

+0

@Anton:如果你已經讓枚舉公開...這應該工作。您是否添加了包含現在公共枚舉的程序集的引用? – Randolpho 2010-08-27 14:46:36