404 Not Found

404 Not Found


nginx

输入与输出

Console.Write 与 Console.WriteLine

Console.Write 输出内容后不换行,Console.WriteLine 输出内容后自动换行。

示例

CSHARP
Console.Write("Hello");
Console.Write(" ");
Console.WriteLine("World");
Console.WriteLine("第二行");
▶ 试一试
TEXT
Hello World
第二行

占位符格式化输出

使用 {0}{1} 等占位符在字符串中插入变量值,后面按顺序列出对应参数。

示例

CSHARP
string name = "张三";
int age = 25;
Console.WriteLine("姓名:{0},年龄:{1}", name, age);
Console.WriteLine("{0}今年{1}岁,{0}是程序员", name, age);
▶ 试一试
TEXT
姓名:张三,年龄:25
张三今年25岁,张三是程序员

字符串插值

在字符串前加 $ 前缀,直接在 {} 中写入变量或表达式,比占位符更直观。

示例

CSHARP
string name = "李四";
int age = 30;
Console.WriteLine($"姓名:{name},年龄:{age}");
int x = 10, y = 20;
Console.WriteLine($"结果:{x + y}");
▶ 试一试
TEXT
姓名:李四,年龄:30
结果:30

对齐控制

在占位符或插值中用逗号指定宽度:正数右对齐,负数左对齐。例如 {0,10} 右对齐宽度10,{0,-10} 左对齐宽度10。

示例

CSHARP
Console.WriteLine("|{0,10}|", "右对齐");
Console.WriteLine("|{0,-10}|", "左对齐");
Console.WriteLine($"|{"插值右",10}|");
Console.WriteLine($"|{"插值左",-10}|");
▶ 试一试
TEXT
|      右对齐|
|左对齐      |
|      插值右|
|插值左      |

精度控制

使用格式说明符控制数值精度:F2 保留2位小数,F4 保留4位小数等。

示例

CSHARP
double pi = 3.14159265;
Console.WriteLine("{0:F2}", pi);
Console.WriteLine("{0:F4}", pi);
Console.WriteLine($"{pi:F3}");
▶ 试一试
TEXT
3.14
3.1416
3.142

常用格式说明符

说明符 名称 说明
C 货币 添加货币符号
D 十进制 整数补零
F 定点 固定小数位
P 百分比 乘100加%号
X 十六进制 转十六进制

示例

CSHARP
int num = 255;
double money = 1234.56;
double ratio = 0.856;
Console.WriteLine($"货币:{money:C}");
Console.WriteLine($"十进制:{num:D6}");
Console.WriteLine($"定点:{money:F1}");
Console.WriteLine($"百分比:{ratio:P1}");
Console.WriteLine($"十六进制:{num:X}");
▶ 试一试
TEXT
货币:¤1,234.56
十进制:000255
定点:1234.6
百分比:85.6%
十六进制:FF

Console.ReadLine 读取输入

Console.ReadLine() 从控制台读取一行文本,返回值为 string 类型。读取到文件末尾时返回 null

示例

CSHARP
Console.WriteLine("请输入你的名字:");
string input = Console.ReadLine();
Console.WriteLine($"你好,{input}!");
▶ 试一试
TEXT
请输入你的名字:
王五
你好,王五!

数字输入转换

Console.ReadLine() 返回字符串,需要用 int.Parseint.TryParseConvert.ToInt32 转换为数字。

示例

CSHARP
string str1 = "42";
int num1 = int.Parse(str1);
int num2 = Convert.ToInt32(str1);

string str2 = "abc";
if (int.TryParse(str2, out int result))
{
    Console.WriteLine($"转换成功:{result}");
}
else
{
    Console.WriteLine("转换失败,输入不是有效整数");
}

Console.WriteLine($"Parse结果:{num1}");
Console.WriteLine($"Convert结果:{num2}");
▶ 试一试
TEXT
转换失败,输入不是有效整数
Parse结果:42
Convert结果:42

Console.ReadKey 读取单键

Console.ReadKey() 读取单个按键,无需按回车。返回 ConsoleKeyInfo 对象,可通过 KeyChar 获取字符。

示例

CSHARP
Console.WriteLine("按任意键继续...");
ConsoleKeyInfo key = Console.ReadKey();
Console.WriteLine();
Console.WriteLine($"你按下了:{key.KeyChar}");
▶ 试一试
TEXT
按任意键继续...
A
你按下了:A

插值中的表达式与格式化

字符串插值 {} 内可写表达式,也可同时使用格式说明符和对齐,语法为 {表达式,对齐宽度:格式说明符}

示例

CSHARP
double price = 29.9;
int quantity = 3;
Console.WriteLine($"单价:{price:C},数量:{quantity},总价:{price * quantity:C}");
Console.WriteLine($"|{price,10:C}|");
int hex = 255;
Console.WriteLine($"十六进制:{hex:X4}");
▶ 试一试
TEXT
单价:¤29.90,数量:3,总价:¤89.70
|    ¤29.90|
十六进制:00FF

格式化输出最佳实践

示例

CSHARP
string[] names = { "苹果", "香蕉", "橘子" };
double[] prices = { 5.5, 3.2, 4.8 };
int[] stocks = { 120, 85, 200 };

Console.WriteLine($"{"商品",8}{"单价",8:C}{"库存",8}");
Console.WriteLine(new string('-', 24));
for (int i = 0; i < names.Length; i++)
{
    Console.WriteLine($"{names[i],8}{prices[i],8:F2}{stocks[i],8}");
}

Console.WriteLine("\n请输入购买数量:");
if (int.TryParse(Console.ReadLine(), out int qty) && qty > 0)
{
    double total = prices[0] * qty;
    Console.WriteLine($"总价:{total:C}");
}
else
{
    Console.WriteLine("输入无效,请输入正整数");
}
▶ 试一试
TEXT
    商品    单价    库存
------------------------
    苹果    5.50     120
    香蕉    3.20      85
    橘子    4.80     200

请输入购买数量:
5
总价:¤27.50

❓ 常见问题

Q int.Parse 和 int.TryParse 有什么区别?
A Parse 转换失败抛异常,TryParse 返回 bool 不抛异常,应优先使用 TryParse。
Q 字符串插值中如何输出大括号字面量?
A 用双大括号转义,{{ 输出 {}} 输出 }
Q Console.ReadLine 返回 null 的情况?
A 当输入流已到达末尾时返回 null,交互式控制台通常不会出现。
Q 货币符号为什么显示¤?
A ¤是区域无关的货币符号,设置系统区域或指定文化信息后可显示对应货币符号。

📖 小节

📝 作业

  1. 编写程序,用字符串插值输出姓名、年龄和身高的个人信息卡片,要求各字段对齐
  2. 编写一个简易计算器:读取两个整数和运算符,输出计算结果,使用 TryParse 处理输入
  3. 编写程序,用表格形式输出5种商品的名称、单价(F2格式)和库存,列宽统一为10
  4. 编写程序,读取一个整数分别以十进制(D8)、十六进制(X)和百分比(P)格式输出
  5. 编写程序,使用 Console.ReadKey 实现菜单选择,按1显示时间,按2退出
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏