使用 Console.WriteLine() 的复杂 I/O
Complex I/O using Console.WriteLine()
经过多年的工作,我目前正在自学C#,只在C++工作。不用说,我需要重新学习很多东西。我的问题如下:
在 Windows 控制台应用程序中打印(写入控制台窗口)涉及多个变量、文本字符串和换行符的复杂信息的最佳方法是什么?
更直白地说,我将如何将类似于以下C++代码的内容转换为 C#:
int x = 1; int y = 2; double a = 5.4;
cout << "I have " << x << " item(s), and need you to give" << endl
<< "me " << y << " item(s). This will cost you " << a << endl
<< "units." << endl;
在C++中,这会将以下内容打印到控制台:
我有 1 件物品,需要您提供
给我 2 件物品。这将花费您 5.4
单位。
这个例子是完全任意的,但我经常在我的程序中有像这样的简短而复杂的消息。我是否完全必须重新学习如何格式化输出,或者 C# 中是否有我尚未找到的类似功能(我已经挖掘了很多 Console.IO 文档)。
您可以在写出到控制台的字符串中指定占位符,然后提供值来替换这些占位符,如下所示:
Console.WriteLine("I have {0} item(s), and need you to givern" +
"me {1} item(s). This will cost you {2} rnunits.", x, y, a);
我认为为了可读性,我会将其分开:
Console.WriteLine("I have {0} item(s), and need you to give", x);
Console.WriteLine("me {0} item(s). This will cost you {1} ", y, a);
Console.WriteLine("units.");
正如BradleyDotNet所指出的,Console.WriteLine()
方法并不直接执行魔术。它调用String.Format
,而又使用StringBuilder.AppendFormat
。
如果你想看看内部发生了什么,你可以在这里查看源代码。
相关文章:
- 函数复杂度分析
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 函数的时间复杂度是多少?
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 使用 Python Extension API 包装复杂C++类
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何计算此排序函数的时间复杂度?
- 计算两个代码块的时间复杂度
- 将平面阵列重塑为复杂的特征类型
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 当 A 在 for 循环中调用函数 B 时,如何计算函数 A 的空间复杂度?
- 如何在复杂继承中访问静态成员变量
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- OpenCV 傅里叶变换复杂输出问题
- 具有嵌套 if-else 的循环的时间复杂度
- 在 for 循环中处理复杂的发送 recv 消息
- C++:如何用单个命令替换复杂的迭代?
- 使用 Console.WriteLine() 的复杂 I/O