перечисление, объявленное на главной странице, не может получить доступ со страницы содержимого

#c# #enums #master-pages #content-pages

#c# #перечисления #мастер-страницы #страницы содержимого

Вопрос:

Привет, я объявил перечисление на главной странице как

 public enum AlertType
        {
            success = 1,
            danger,
            warning,
            info,
            primary,
            secondary,
            light,
            dark
        }
  

Но когда я попытался получить доступ к одному элементу этого перечисления внутри моей страницы содержимого, используя string Name = this.Master.AlertType.danger.ToString(); , это выдает ошибку «не удается ссылаться на тип через выражение». Что делать с этой ошибкой? как я могу получить доступ к этим значениям внутри перечисления здесь, на моей странице содержимого?

Комментарии:

1. Можете ли вы опубликовать полный код, в котором вы получаете доступ к перечислению

2. Я пытался получить к нему доступ в разделе `!ispostback`.

3. this.Master.AlertType является ссылкой на значение экземпляра. Тип AltertType перечисления не является частью экземпляра

Ответ №1:

Проблема именно в том, что говорится в сообщении об ошибке. Вы используете локальное свойство this.Master.AlertType для доступа к перечислению. Это свойство имеет собственное значение (возможно success ), поэтому нет смысла добавлять .danger к нему.

Попробуйте

 string Name = AlertType.danger.ToString();
  

Комментарии:

1. Но я не могу получить доступ к AlertType непосредственно на странице содержимого??

2. Тогда вам, вероятно, нужно сослаться на класс, которому оно принадлежит. Мы не знаем, что это такое, потому что мы не видели остальной части вашего кода. Это будет что-то вроде masterPage.AlertType.danger.ToString()

3. Да, я могу получить к нему доступ по имени главной страницы. Но я спрашиваю о том, почему мы не можем это использовать. Вместо этого мастер?

4. Я уже установил главный тип VirtualPath и все остальное, и я могу получить доступ ко всем другим переменным, объявленным общедоступными на главной странице, используя это. Главная

5. потому что это. Master — это объект со свойствами. Оно представляет собой единую вещь со свойствами, которые имеют значения. Класс, который его определяет (и содержит перечисление), является основой, из которой он построен. Компилятору необходимо знать, ссылаетесь ли вы на класс или на объект. Я полагаю, что это могло бы сработать, но это не настолько умно.