You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中Console.WriteLine的{0}占位符失效问题求解

解决C#控制台程序中{0}占位符失效的问题

嘿,我一眼就揪出问题啦!你在处理用户输入"Bad"的代码分支里,把字符串拼接和占位符格式化的用法搞混了,这才导致{0}没被正确替换。

先看你出问题的那行代码:

Console.WriteLine("Don't {0} worry everyone always had a bad day :) " + name);

这里你写了{0}占位符,但却用+ name直接把名字拼到了字符串末尾——Console.WriteLine的占位符逻辑是需要把对应的值作为后续参数传进去,而不是直接拼接字符串。这么写的结果就是,{0}会原封不动地显示在输出里,名字反而被生硬地加到句子最后,完全不是你想要的效果。

两种简单的解决办法:

  1. 正确使用占位符语法
    把字符串拼接的+ name删掉,把name作为第二个参数传给Console.WriteLine,让占位符和参数对应上:
Console.WriteLine("Don't {0} worry, everyone has a bad day sometimes :)", name);
  1. 改用字符串插值(更直观,C# 6+支持)
    如果你的项目用的是C# 6或更高版本,字符串插值会让代码可读性更高——直接用$开头标记字符串,把变量放到{}里就行:
Console.WriteLine($"Don't {name} worry, everyone has a bad day sometimes :)");

顺便提个小细节:你代码里的<和>不用转义成&lt;和&gt;哦,控制台输出里直接写<Press Any Key To Continue>就能正常显示尖括号,这只是个小优化,不影响核心功能~

内容的提问来源于stack exchange,提问作者Aleksander Kozłowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:09:11