Перечисляет ошибку объявления области - PullRequest
0 голосов
/ 27 августа 2010

У меня есть пространство имен с перечислениями:

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

Тогда я пытаюсь объявить enum:

namespace Search
{

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

        public SearchConditionType Field;
        ...

И получил ошибку:

Имя типа или пространства имен '' может не быть найден (вы пропускаете использование директива или ссылка на сборку?)

Что не так?

Ответы [ 4 ]

3 голосов
/ 27 августа 2010
 enum SearchConditionType 

Ваше перечисление не общедоступно.

1 голос
/ 27 августа 2010

Сделать перечисление public:

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

Типы, для которых модификатор доступа не имеет значения по умолчанию internal в C #.

Если файлы находятся в разных сборках,нужно добавить ссылку на сборку, содержащую перечисление.Это можно сделать через узел References проекта в обозревателе решений.

0 голосов
/ 28 августа 2010

Проблема была в следующем: я сделал веб-приложение с веб-сайта.Перечень веб-сайтов находится в папке App_Code.Когда я переименовываю эту папку - проблема исчезает.

0 голосов
/ 27 августа 2010

Хм ... вы пытаетесь выставить внутренний тип как открытый тип. Это единственная проблема, которую я вижу с вашим кодом. Но это не должно вызывать ошибку компилятора, которую вы предоставляете, поэтому я думаю, что проблема в другом месте вашего кода.

edit : Вы пытаетесь выставить enum в другой сборке? Это приведет к ошибке, которую вы перечисляете. Так что, да, просто сделайте перечисление публичным.

...