这两个 C# 控制台.write 语法之间有什么区别
本文关键字:语法 write 之间 区别 什么 控制台 两个 | 更新日期: 2023-09-27 17:56:52
我对C#比较陌生。在浏览一些 C# 控制台应用的在线练习练习时,我遇到了一些我发现很有趣的东西。如果要求我向屏幕输出一个变量,我只会使用:
Console.Write(variable);
但是当我在各种教程中查找它时,他们说它应该这样写:
Console.Write("{0}", variable);
为什么列出这种不同的方式,而不是我自然的方式?
由于您只有一个变量,因此没有区别。第二个版本用于编写格式化字符串。它的工作方式与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.姓氏);