C# 简化消息框的代码。文件名是从file.WriteAllText生成的

C# 简化消息框的代码。文件名是从file.WriteAllText生成的,c#,C#,我有这个代码,我想简化 File.WriteAllText( Path.Combine(dir, DateTime.Now.ToString("dd-MM-yyyy_hh-mm-ss") + "-" + messageType + "-" + messageGateway + ".csv"), messageBody); MessageBox.Show(Strings.AllActio

我有这个代码,我想简化

       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方法获取,而不是重写语法

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

我还将使用该函数使其更具可读性:

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));