我在控制台中写了一个基于文本的小冒险作为我在C#中的第一个项目之一。
在某一点上,我想做以下事情:
Console.WriteLine(intro);
var name = Console.ReadLine();
Console.Clear();
Console.WriteLine(replyOne, name, replyTwo);
但是,在最后一行,只显示第一个变量(replyOne)。如何显示所有值?
答案 0 :(得分:2)
取决于replyOne
上的内容,但您使用Console.WriteLine
重载,将格式字符串作为第一个参数,并使用多个对象替换该格式string(this one)。这就是.NET中的Composite Formatting
如果您要做的是连接字符串,您可以通过多种方式完成:
只将一个字符串传递给Console.WriteLine
:
Console.WriteLine(replyOne + name + replyTwo);
使用格式字符串...这将使用您现在使用的相同重载,但在第一个参数上传递格式字符串以进行替换:
Console.WriteLine("{0}{1}{2}", replyOne, name, replyTwo);
使用插值字符串(仅限C#6及以上)
Console.WriteLine($"{replyOne}{name}{replyTwo}");
答案 1 :(得分:1)
在Console.WriteLine
的多参数重载中,第一个参数应该是格式字符串,其他所有参数都是替换值。
有关详细信息,请参阅Console.WriteLine Method (String, Object)
。
答案 2 :(得分:1)
如果希望Console.WriteLine
输出格式化字符串,则第一个参数必须是包含定义格式的占位符的字符串。所以假设你只想连续输出三个字符串,你需要这样的东西:
Console.WriteLine("{0} {1} {2}", replyOne, name, replyTwo);
将输出由空格分隔的三个字符串。
您可以用逗号,换行符(\n
)或标签(\t
)替换空格,以获得所需的格式。
答案 3 :(得分:0)
请改为尝试:
Console.WriteLine(replyOne + name + replyTwo);
或类似的东西。
当您正在调用该方法时,它会将replyOne
值视为输出的格式,而不是单个输出项。当然,对于调用中的格式参数{0}
和{1}
,您的格式没有name
或replyTwo
,因此省略它们。
您可以自己连接输出文本,如上所述,将其用作整个格式(根本没有任何格式参数)。
当然,还有很多其他格式化输出的选项。以上内容符合您目前发布的内容。
答案 4 :(得分:0)
Console.WriteLine("{0},{1},{2}",replyOne,name,replyTwo);