我希望最终用户能够指定自定义日期时间格式以输出到日志文件.(它控制每行的日期时间戳的前缀.)
我使用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不喜欢拆分大括号用法(我也不喜欢).感觉就像一个黑客.有没有更好的方法将字符串格式传递给方法并使用它来格式化返回值?
(请注意,在假定用户指定的字符串可用之前,将对其进行验证.)
编辑:
为简洁起见,我简化了代码示例.实际方法迭代对象集合并相应地格式化每个对象集合.它还执行涉及富文本格式化等的其他功能,这些功能在此处不相关.
你考虑过一个DateTime.ToString(string format)
用法:
public string GetFormattedEntry(string stampFormat) { return String.Format("{0}: {1}", DateTime.Now.ToString(stampFormat), _entry); }