C# 如何在c中使用1 Console.Writeline()编写两个字符串及其两个变量值#

C# 如何在c中使用1 Console.Writeline()编写两个字符串及其两个变量值#,c#,c++,C#,C++,我切换到c#,希望使用c#中的Console.Writeline()函数在一行中写入两个变量值 在C++中,我可以这样做: cout<<"symbol : "<<symbol<<"frequency : "<<frequency<<endl; 我试着用c#做,但它只打印第一个变量,我是这样做的: Console.WriteLine("Symbol : " +parentNode.symbol ,"frequency is : " +

我切换到c#,希望使用c#中的Console.Writeline()函数在一行中写入两个变量值

在C++中,我可以这样做:

cout<<"symbol : "<<symbol<<"frequency : "<<frequency<<endl;
我试着用c#做,但它只打印第一个变量,我是这样做的:

 Console.WriteLine("Symbol : " +parentNode.symbol ,"frequency is : " + code );
只打印
符号:10
不打印频率

我尝试为两个控制台都添加了两个Console.WriteLine(),但这改变了行


有什么帮助吗?

逗号的位置出现语法错误。我猜你是想把它放在字符串中,把“符号”和“频率”分开。然后需要一个附加的
+
符号来连接字符串


试试这个。您可以在字符串中指定占位符,然后指定随后将替换它们的参数:

Console.WriteLine("Symbol : {0}, frequency is : {1}", parentNode.symbol, code);

也更容易判断最终输出的样子。

我认为您想要实现的目标可以这样做:

Console.WriteLine("Symbol : " + parentNode.symbol + " frequency is : " + code);
i、 e.
Console.WriteLine(字符串)

但更好的方法是使用以下重载
控制台。WriteLine(字符串,params object[])

从C#6开始,可以使用字符串插值(注意字符串前面的
$
):

问题是,您的代码正在使用Console.WriteLine的第二个重载,但您的代码编写方式不符合此方法的理解

有关更多信息,请参阅有关以下方法的MSDN文档:


    • 有两种方法。首先,您可以使用
      .Write()
      而不是
      .WriteLine()
      ,以便不包括回车:

      Console.Write("Symbol : " + parentNode.symbol);
      Console.WriteLine("frequency is : " + code);
      
      或者,您可以在一个调用中将字符串连接在一起:

      Console.WriteLine("Symbol : " + parentNode.symbol + " frequency is : " + code);
      
      您的尝试不起作用的原因是,Console.WriteLine()的重载接受格式字符串和任意数量的对象,这些对象可以转换为字符串并放置在格式字符串中。但是,第一个参数是没有格式占位符的字符串,因此第二个参数基本上被忽略

      您可以使用如下格式设置字符串,这通常比上述选项更受欢迎:

      Console.WriteLine("Symbol : {0} frequency is : {1}", parentNode.symbol, code);
      
      在这种情况下,方法调用有三个参数,第一个是格式字符串(带占位符),接下来的两个是可以转换为字符串以放入占位符的对象。

      您缺少一个
      “+”


      你应该写信的

      Console.WriteLine("Symbol : " + parentNode.symbol + "frequency is : " + code );
      
      而不是

      Console.WriteLine("Symbol : " +parentNode.symbol ,"frequency is : " + code );
      
      as
      WriteLine()
      要求在第一个参数中使用格式,并为格式或字符串指定参数

      另一种方法是

      Console.WriteLine("Symbol : {0} frequency is {1}", parentNode.symbol, code );
      

      正如其他答案所指出的。

      对不起?我不明白?您在您的
      父节点.symbol之后使用了
      而不是
      +
      。它能解决你的问题吗?顺便说一下,如果您想在同一行上执行此操作,您可以对两个
      字符串
      使用
      Console.Write()
      ,并且不会更改该行。错误CS0117:
      System.Console'不包含
      Writeline'/usr/lib/mono/2.0/mscorlib.dll(与先前错误相关的符号位置)的定义啊,我的回答有点误会——只是为了让你保持警觉:P现在更正了。你做了什么改变?我还不能确定?@user234839如果你点击一个问题,它会让你看到不同之处。
      
       Console.WriteLine("Symbol : " +parentNode.symbol  + "frequency is : " + code );
                                                        ^^^
      
      Console.WriteLine("Symbol : " + parentNode.symbol + "frequency is : " + code );
      
      Console.WriteLine("Symbol : " +parentNode.symbol ,"frequency is : " + code );
      
      Console.WriteLine("Symbol : {0} frequency is {1}", parentNode.symbol, code );