Как объявлять типы в c#

#c# #class

#c# #класс

Вопрос:

Я не уверен, какое правильное имя для того, что я ищу!

Что я пытаюсь сделать, так это создать метод для обновления текста строки состояния и покрасить его в красный цвет, если это сообщение об ошибке, или зеленый, если это сообщение об успешном завершении:

 public void UpdateStatus(string message, MessageType type)
{
      if(type == MessageType.Error)
      {
           statusText.Text = message;
           statusText.ForeColor = Color.Red;
      }

      if(type == MessageType.Success)
      {
           statusText.Text = message;
           statusText.ForeColor = Color.Green;
      }
}
  

И вот MessageType

 public class MessageType
{
    class Error
    {
       //What to do here?
    }

    class Success
    {
        //What to do here?
    }
}
  

Итак, как я могу определить этот MessageType класс и как он называется? Интерфейс? Перечисление? что??

Спасибо.

P.S: Я знаю, что могу просто использовать Color в качестве второго параметра для UpdateStatus метода, который я написал, но я хочу узнать, как сделать его похожим на то, что я сказал.

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

1. Вместо класса определите MessageType как Enum .

2. Кроме того, я обычно предпочитаю использовать a switch при работе с enum s . В некоторых случаях я также добавлю a default: nthrow new NotImplementedException на случай, если кто-то изменит enum (но не функцию) позже или приведет к не сопоставленному int с an enum .

Ответ №1:

Вы пытаетесь создать enum тип:

 public enum MessageType {
    Success,
    Error
}
  

Ответ №2:

Я думаю, вам просто нужно enum :

 public enum MessageType { Error, Success }
  

и тогда ваш if(type == MessageType.Error) просто работает.

Ответ №3:

В этом случае вы ищете перечисление:

 public enum MessageStatus
{
  Failure,
  Success
}
  

Ответ №4:

Вам, вероятно, нужно перечисление:

 public enum MessageType
{
    Error,
    Success
}
  

Затем в коде, использующем перечисление, вы должны сделать что-то вроде:

 if (msg == MessageType.Error)
    // show error info
else
    // show success info
  

Ответ №5:

 public enum MessageType {Error, Success};
  

Ответ №6:

Я думаю, вы хотите, чтобы перечисление было чем-то вроде

 public enum MessageType { Error, Success };
  

Взгляните http://msdn.microsoft.com/en-us/library/sbbt4032 (v = против 71).aspx для получения дополнительной информации.

Ответ №7:

Если вы решите использовать перечисление, используя:

 public enum MessageType
{
    Failure,
    Success
}
  

… затем вы можете обработать это с помощью переключателя, например:

 public void UpdateStatus(string message, MessageType type)
{
   statusText.Text = message;

   switch (type)
   {
       case MessageType.Error:
           statusText.ForeColor = Color.Red;
           break;

      case MessageType.Success:
           statusText.ForeColor = Color.Green;
           break;
   }
}