如何在花括号内没有字符串连接的情况下使用字符串格式作为参数?

时间:2013-12-05 21:50:37

标签: c# .net winforms

我希望最终用户能够指定自定义日期时间格式以输出到日志文件。 (它控制每行的日期时间戳前缀。)

我正在使用String.Format进行一些串联,这会导致ReSharper警告有关不匹配的大括号。必须有一种更合适的方法来解决这个问题,但我无法找到它。

string _entry = "Some event.";

public string GetFormattedEntry(string stampFormat)
{
    return String.Format("{0:" + stampFormat + "}: {1}", DateTime.Now, _entry);
}

这个想法是可以使用用户指定的格式字符串调用它,例如“yyyy-MM-dd HH:mm:ss”,这将导致:

  

2013-12-05 14:47:57有些事件。

问题是ReSharper不喜欢拆分花括号用法(我也不喜欢)。感觉就像一个黑客。有没有更好的方法将字符串格式传递给方法并使用它来格式化返回值?

(请注意,在假定用户指定的字符串可用之前,会对其进行验证。)

修改

为简洁起见,我简化了代码示例。实际方法迭代对象集合并相应地格式化每个对象集合。它还执行涉及富文本格式化等的其他功能,这些功能与此无关。

1 个答案:

答案 0 :(得分:5)

您是否考虑过使用DateTime.ToString(string format)

public string GetFormattedEntry(string stampFormat)
{
    return String.Format("{0}: {1}", DateTime.Now.ToString(stampFormat), _entry);
}