我对C#比较陌生。在为C#控制台应用程序进行一些在线练习练习时,我发现了一些我觉得很有趣的东西。如果我被要求将一个变量输出到屏幕上,我只想使用:
Console.Write(variable);
但是当我在各种教程中查看时,他们说它应该写成:
Console.Write("{0}", variable);
为什么列出这种不同的方式而不是我自然会这样做?
答案 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次,没有任何控制台输出。从性能类型的视图格式化使用随机值(而不是您通常会意识到的)需要一些时间