我经常使用String.Format()
因为它使字符串的构建更具可读性和可管理性。
无论如何都要减少它的句法冗长,例如使用扩展方法等?
Logger.LogEntry(String.Format("text '{0}' registered", pair.IdCode));
public static void LogEntry(string message)
{
...
}
e.g。我想使用我使用Console.Write()
的方式接收字符串的所有方法和其他方法,例如:
Logger.LogEntry("text '{0}' registered", pair.IdCode);
答案 0 :(得分:13)
怎么样:
static void LogEntry(string format, params object[] args) {
Console.WriteLine(format, args); // For example.
}
现在你可以这样称呼它:
Logger.LogEntry("text '{0}' registered", pair.IdCode);
答案 1 :(得分:4)
如果您控制Logger.LogEntry
方法,则只需添加包含string.format的重载即可。只需将第二个参数声明为一个paramarray,你就可以了!
答案 2 :(得分:2)
是的,您可以创建一个名为FormatWith的扩展方法,它允许您说出以下内容:
Logger.LogEntry("I hate my {0}".FormatWith(itemName));
滚动自己应该很容易,但这是一个例子:http://james.newtonking.com/archive/2008/03/27/formatwith-string-format-extension-method.aspx
答案 3 :(得分:1)
如果Logger.LogEntry
是您控制之外的静态方法,那么不;您只能向实例添加扩展方法。如果是您的类型,您可以添加:
public static void LogEntry(string format, params object[] args) {
... string.Format(format,args) ...
}
答案 4 :(得分:0)
您可以使用params关键字将第一个参数之后的所有参数组合到一个数组中,并将该数组传递给String.Format。
static void FormatString(string myString, params string[] format)
{
Console.WriteLine(String.Format(myString, format));
}