这两个C#console.write语法有什么区别?

时间:2015-06-18 13:15:31

标签: c#

我对C#比较陌生。在为C#控制台应用程序进行一些在线练习练习时,我发现了一些我觉得很有趣的东西。如果我被要求将一个变量输出到屏幕上,我只想使用:

 Console.Write(variable);

但是当我在各种教程中查看时,他们说它应该写成:

  Console.Write("{0}", variable);

为什么列出这种不同的方式而不是我自然会这样做?

4 个答案:

答案 0 :(得分:3)

由于您只有一个变量,因此没有区别。第二个版本用于编写格式化字符串。它的工作方式与String.Format例如:

相同
Console.Write("The {0} Saturday this month is {1:dd MM yyyy}", "First", new DateTime(2015,6,13));

答案 1 :(得分:1)

console.write("{0}", variable);Console.WriteLine方法的重载,它向控制台显示格式化结果字符串。不过,对于您的情况,输出将完全相同。

参考文献:

答案 2 :(得分:1)

复合格式字符串包含实际文本和格式项的某种组合,这些项将在运行时替换为相应占位符的值。 例如:

string name = "Ahmer";

int age = 22;

Console.WriteLine(string.Format(“{0}是{1}岁。{0}已久。”,姓名,年龄))

输出:

  

Ahmer 22岁。

格式项由一对大括号内的从0开始的索引表示。请注意,您可以拥有多个引用同一占位符的格式项。 您还可以按任何顺序包含格式项。在运行时,将评估每个格式项并替换适当的值。例如:

Console.WriteLine(string.Format("Age: {1}, Name: {0}.  {1} {1} {1}..", name, age));
  

年龄:22岁,姓名:Ahmer。 22 22 22

答案 3 :(得分:0)

如上所述,输出将是相同的,但String.Format(使用两个参数调整Console.Write的重载)使代码更容易读/写/维护。

但如果你对表演感兴趣,请看这里...... String output: format or concat in C#?

编辑:删除旧值,因为测试不可靠...更新后效果更好

这些行已执行1000000次,没有任何控制台输出。从性能类型的视图格式化使用随机值(而不是您通常会意识到的)需要一些时间

  • 513 ms - string.Format(“{0} {1}”,p.FirstName,p.LastName);
  • 393 ms - (p.FirstName +“”+ p.LastName);