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