Я хочу иметь возможность распечатывать три типа сообщений на консоль: предупреждения, ошибки и успех. Для этого каждый раз мне приходилось менять ForegroundColor
консоли на желтый, красный или зеленый, распечатывать сообщение и менять цвет назад. Чтобы сделать это быстрее, я решил создать класс (скажем, Printer
), который имеет три метода: Warning(message)
, Error(message)
, Success(message)
. Теперь я задаю вопрос: должен ли Printer
быть struct
или class
? Я не планирую иметь больше полей/методов в этом классе.Должен ли я использовать класс или структуру для обертывания методов?
1
A
ответ
4
На самом деле это звучит как статический класс.
public static class Printer
{
public static void Warning(string message)
{
var currentColor = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine(message);
Console.ForegroundColor = currentColor;
}
//Other similar methods here
}
Тогда вы бы назвали как этот
Printer.Warning("This is a warning");
Похоже, это может быть даже статический класс. – juharr
Не совсем, по крайней мере, я так не думаю. Я понимаю, что структуры чаще всего используются, когда вы просто хотите сгруппировать некоторые простые значения вместе. Но я также слышал, что если класс не изменяет своих членов, он должен быть структурой. Я не уверен, насколько это верно, вот почему я спрашиваю :) – SalysBruoga
Ну, если каждый метод просто изменяет цвет текста консоли, затем печатает этот метод, а затем меняет его, тогда все данные статичны (цвет основанный на методе, и сообщение передается в). Или спросите себя, создали ли несколько экземпляров 'Printer', как бы они отличались друг от друга? – juharr