简化消息框的代码是文件名是从File.WriteAllText构建的

时间:2015-01-05 01:18:42

标签: c#

我有这个代码,我想简化

       File.WriteAllText(
            Path.Combine(dir,
                DateTime.Now.ToString("dd-MM-yyyy_hh-mm-ss") + "-" + messageType + "-" + messageGateway + ".csv"),
            messageBody);

        MessageBox.Show(Strings.AllActionLogViewModel_ExportMessageContentToCsv_Saved_Log_File + " " + DateTime.Now.ToString("dd-MM-yyyy_hh-mm-ss") + "-" + messageType + "-" + messageGateway + " " + "to " + dir);}

正如您所看到的,我在MessageBox中复制了文件名语法。我想压缩这个,所以我的消息框返回文件名,但从File.WriteAllTest方法获取它,而不是重写语法。

1 个答案:

答案 0 :(得分:1)

只需将其分配给变量,然后在需要时重复使用。这也可以避免在DateTime.Now用于两个不同位置的潜在问题。虽然不太可能,但如果第二次更改,您可能会在两次调用之间获得两个不同的值。

我还会使用string.Format函数使其更具可读性:

var fileName = string.Format("{0}-{1}-{2}",
    DateTime.Now.ToString("dd-MM-yyyy_hh-mm-ss"),
    messageType, messageGateway);

File.WriteAllText(Path.Combine(dir, fileName + ".csv"), messageBody);

MessageBox.Show(string.Format("{0} {1} to {2}",
    Strings.AllActionLogViewModel_ExportMessageContentToCsv_Saved_Log_File,
    fileName, dir));