【问题标题】:Console WriteLine(var, var); not displaying second variable?控制台 WriteLine(var, var);不显示第二个变量?
【发布时间】:2016-11-04 00:28:41
【问题描述】:

作为我在 C# 中的第一个项目之一,我正在控制台中编写一个基于文本的小冒险。

在某个时候,我想做以下事情:

 Console.WriteLine(intro);
 var name = Console.ReadLine();
 Console.Clear();
 Console.WriteLine(replyOne, name, replyTwo);

但是,在最后一行,仅显示第一个变量 (replyOne)。如何显示所有值?

【问题讨论】:

    标签: c# console.writeline


    【解决方案1】:

    取决于 replyOne 上的内容,但您使用的是 Console.WriteLine 重载,它采用 格式字符串 作为第一个参数和用于替换该格式字符串的多个对象 (@987654321 @)。这就是 .NET 中所谓的Composite Formatting

    如果您想要连接字符串,您可以通过以下几种方式进行:

    1. 只将一个字符串传递给Console.WriteLine

      Console.WriteLine(replyOne + name + replyTwo);
      
    2. 使用格式字符串...这将使用您现在使用的相同重载,但传递一个格式字符串以在第一个参数上进行替换:

      Console.WriteLine("{0}{1}{2}", replyOne, name, replyTwo);
      
    3. 使用插值字符串(仅限 C# 6 及更高版本)

      Console.WriteLine($"{replyOne}{name}{replyTwo}");
      

    【讨论】:

    • 感谢您提供非常全面的回答。
    【解决方案2】:

    Console.WriteLine 的多参数重载中,第一个参数应该是格式字符串,其他所有参数都是替换值。

    详情请见Console.WriteLine Method (String, Object)

    【讨论】:

      【解决方案3】:

      如果您希望Console.WriteLine 输出格式化字符串,则第一个参数必须是包含定义格式的占位符的字符串。所以假设你只想连续输出三个字符串,你需要这样的东西:

      Console.WriteLine("{0} {1} {2}", replyOne, name, replyTwo);
      

      这将输出由空格分隔的三个字符串。

      您可以用逗号、换行符 (\n) 或制表符 (\t) 替换空格以获得所需的格式。

      【讨论】:

      • 这会在输出中放置空格。原始问题中没有任何内容表明需要这些内容。
      • @PeterDuniho,确实它确实在输出中加入了空格,我没有看到任何迹象表明他们想要输出 没有 空格。
      • @ChrisF 我宁愿期待那些是新的线路。
      【解决方案4】:

      试试这个:

      Console.WriteLine(replyOne + name + replyTwo);
      

      或类似的东西。

      当您现在调用该方法时,它会将replyOne 值视为输出的格式,而不是单个输出项。当然,对于调用中的格式参数namereplyTwo,您的格式没有{0}{1},因此它们被省略了。

      您可以自己连接输出文本,如上所述,将其用作整个格式(根本没有任何格式参数)。

      当然,还有许多其他用于格式化输出的选项。以上内容符合您目前发布的内容。

      【讨论】:

        【解决方案5】:
        Console.WriteLine("{0},{1},{2}",replyOne,name,replyTwo);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-14
          相关资源
          最近更新 更多