这两个 C# 控制台.write 语法之间有什么区别

本文关键字:语法 write 之间 区别 什么 控制台 两个 | 更新日期: 2023-09-27 17:56:52

我对C#比较陌生。在浏览一些 C# 控制台应用的在线练习练习时,我遇到了一些我发现很有趣的东西。如果要求我向屏幕输出一个变量,我只会使用:

 Console.Write(variable);

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

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

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

这两个 C# 控制台.write 语法之间有什么区别

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

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

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

string name = "Ahmer";

整数年龄 = 22;

Console.WriteLine(string.格式("{0} 已有 {1} 年的历史。{0}老了",名字,年龄))

输出:

艾哈迈尔今年22岁。

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

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

岁,姓名:艾哈迈尔 22 22 22

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

引用:

  • Console.WriteLine 方法(字符串、对象)
  • Console.WriteLine 方法(字符串)。

如前所述,输出将是相同的,但 String.Format(它使用两个参数限定了 Console.Write 的重载)使代码更容易读取/写入/维护。

但是,如果您对性能感兴趣,请查看此处...字符串输出:在 C# 中格式化还是连接?

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

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

  • 513 毫秒 - 字符串。格式("{0} {1}", p.FirstName, p.LastName);
  • 393 毫秒 - (p.名字 + " " + p.姓氏);