如何在c#中使用Console.Writeline()编写两个字符串和它们的两个变量值

how to write two string and their two variables values using 1 Console.Writeline() in c#

本文关键字:两个 字符串 变量值 Console Writeline      更新时间:2023-10-16

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

在c++中,我可以这样做:
cout<<"symbol : "<<symbol<<"frequency : "<<frequency<<endl;

将打印:

symbol : a frequency : 10 

我尝试在c#中这样做但它只打印第一个变量,我这样做的:

 Console.WriteLine("Symbol : " +parentNode.symbol ,"frequency is : " + code );

只打印symbol : 10 ,不打印频率

我尝试了两个Console.WriteLine(),但这改变了行。

如何实现?

我认为你想达到的目的可以这样做:

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

Console.WriteLine(string)

但是更好的方法是使用下面的重载Console.WriteLine(string, params object[]):

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

并且在c# 6中,您可以使用字符串插值(注意字符串之前的$):

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

问题是你的代码正在使用Console.WriteLine的第二次重载,但你的代码不是以这种方法可以理解的方式编写的。

有关更多信息,请参阅MSDN关于Console.WriteLine方法的文档:

  • Console.WriteLine(string)
  • Console.WriteLine(string, params object[])

逗号的位置有语法错误。我猜你是想把它放在字符串里,把"符号"answers"频率"分开。然后,您需要一个额外的+符号来连接字符串。


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

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

也更容易判断最终输出是什么。

您缺少一个"+"

 Console.WriteLine("Symbol : " +parentNode.symbol  + "frequency is : " + code );
                                                  ^^^

有几种方法。首先,您可以使用.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 );

作为WriteLine(),需要在第一个参数和形参中指定格式或字符串。

另一种方法是

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