String.Format vs + C#

时间:2012-03-19 22:35:59

标签: c# string

  

可能重复:
  When is it better to use String.Format vs string concatenation?

为C#使用String.Format时的最佳做法是什么。我总是在这里感到困惑,因为这样的操作似乎更简单

    private string _ExecuteCommand(string cmd)
    {
        // Start the child process.
        Process p = new Process();
        ProcessStartInfo startInfo = new ProcessStartInfo();

        // Redirect the output stream of the child process.
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.FileName = "cmd.exe";
        startInfo.Arguments = String.Format("/C {0}", cmd); // prevents the command line from staying open after execution

        //... you get the idea
    }

使用String.Format vs字符串连接是否有特别的优势?换句话说,我可以这样做......,

startInfo.Arguments = "/C " + cmd; // prevents the command line from staying open after execution

我想继续使用质量代码,但我不知道它的quality何时使用String.Format。如果有人有任何建议我会很感激。

3 个答案:

答案 0 :(得分:1)

在这种情况下,我会选择直连; MS认证文章建议只对两个字符串进行简单连接。

如果您的变量是DateTime对象(例如)并且您需要特定格式,那么我将使用String.Format。

答案 1 :(得分:0)

当您需要将应用翻译成多种语言或应对不同的环境时,String.Format会为您提供帮助。如果你从一开始就使用string.format,你就把自己放在一个更好的地方,因为将所有字符串放到资源文件中要容易得多。

在您的示例中,如果您使用string.format然后选择将Start Info字符串存储在资源文件中,则可以为不同的环境提供单独的资源文件,以支持MAC,Windows和Linux,而无需更改代码。 / p>

答案 2 :(得分:0)

String.Format更易读,而字符串连接更快。 String.Format使用内部StringBuilder来格式化字符串,因此它有点慢但更健壮。