问题
I created log method that accept string. When I want to use it I write something like:
Log(string.Format("Message {0}", AdditionalInfo));
How should I implement Log method in order to be able to use string Format but do not have to write it explicitly in method arguments:
Log("Message {0}", AdditionalInfo);
I use .net 2.0
回答1:
public void Log(string formatString, params object[] parameters)
{
Log(String.Format(formatString, parameters));
}
回答2:
public void Log(string format, params object[] args)
{
DoTheLog(string.Format(format, args));
}
回答3:
void Log(string format, params object[] args)
{
Log(string.Format(format, args));
}
回答4:
Try something like:
public void Log(string format, params object[] arguments)
{
string message = string.Format(format, arguments);
// Do something with message.
}
回答5:
You could perhaps write a wrapper for your Log method. I hope something like this works.
public void Log(string format, object args)
{
Do_Log(string.Format(format, args))
}
Now you can have Do_Log() as private and not expose it to consumers of your class.
来源:https://stackoverflow.com/questions/6304279/dynamic-string-formatting-in-c-sharp