У меня есть следующие два метода:Есть ли способ объединить эти 2 метода?
class Debug
{
static bool OutputToConsole = true;
public static void Log(string Type, string URL, StringBuilder Parameters)
{
string Output = Type + ":" + new string(' ', 9 - Type.Length) + URL + " { " + Parameters.ToString() + " }";
Trace.WriteLine(Output);
if(OutputToConsole) Console.WriteLine(Output);
}
public static void Log(string Data)
{
string Output = "Response: " + Data;
Trace.WriteLine(Output);
if(OutputToConsole) Console.WriteLine(Output);
}
}
Если вы заметите, что это только string Output
, что изменения.
2 линии после того, как они одинаковы в обоих методах.
Мне просто интересно, есть ли способ сохранить DRY principle и объединить эти 2 метода?
ввести вспомогательную функцию 'trace (string output)'? –
Сделайте метод, который фактически будет таким же, как и вторая перегрузка, только без добавления «Ответ:» в первую очередь? Затем вы можете string.Format любым способом, который вам нравится, и назовите его результатом. Но на самом деле, для двух строк дважды, почему вы беспокоились? – Jon
@Jon Просто ради любопытства, в основном. Чтобы увидеть, возможно ли что-то подобное. Может пригодиться в будущем в «лучшей» реализации. –