繁体   English   中英

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

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

我切换到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的第二次重载,但是您的代码不是以该方法可以理解的方式编写的。

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

您的逗号位置出现语法错误。 我的猜测是您打算将其放在字符串中,以分隔“符号”和“频率”。 然后,您需要一个附加的+号来连接字符串。


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

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

告诉您最终的输出看起来会更容易一些。

您缺少"+"

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

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

正如另一个答案所指出的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM