我有以下两种方法:有没有办法将这两种方法结合起来?
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
。
后面的两行在两种方法中都是相同的。
我只是想知道是否有办法保持DRY principle并结合这两种方法?
引入一个辅助函数'trace(string output)'? – 2013-04-09 17:21:53
创建一个与第二次重载实际上相同的方法,只需要首先不添加“Response:”?然后你可以用你喜欢的任何方式string.Format并用结果调用它。但是,真的,两行两次你为什么要打扰? – Jon 2013-04-09 17:22:30
@Jon主要是为了好奇。看看这样的事情是否可能。未来可以在“更好”的实施中派上用场。 – 2013-04-09 17:22:57