#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 . В некоторых случаях я также добавлю adefault: nthrow new NotImplementedException
на случай, если кто-то изменитenum
(но не функцию) позже или приведет к не сопоставленномуint
с anenum
.
Ответ №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;
}
}