繁体   English   中英

打印变量时C#是否需要占位符

[英]Is placeholders necessary on c# when printing variables

在C ++中,当您定义变量并要打印它时,您可以执行

cout << "Your varibales is" << var1 << endl;

但是,为什么在C#中需要一个占位符呢?

Console.WriteLine("The answer is {0}" , answer);

因为我在打印不带placeholder的答案时遇到错误。 我已经在网上搜索过,但没有提供我需要的信息。

不必在变量必须为字符串的情况下使用串联来执行此操作,否则就必须使用.ToString()进行转换并格式化对象:

Console.WriteLine("The answer is " + answer); // if answer is string

answer为一个DateTime对象,并且您只想打印格式为“ dd-MMM-yyyy”的日期,则可以这样使用:

Console.WriteLine("The answer is " + answer.ToString("dd-MMM-yyyy")); // if answer is not string

因为这就是String.Format工作方式。 Console.WriteLine内部使用String.Format 您可以编写类似Console.WriteLine("The answer is " + answer); 代替。

占位符仅用于字符串格式化 :内部WriteLine方法将调用String.Format方法,但是您可以自己格式化它,也可以使用多个Console.Write语句:

Console.Write("The answer is ");
Console.WriteLine(answer);

例如,由于以下语句,它或多或少地等同于您在C ++程序中所做的工作:

cout << "Your varibales is" << var1 << endl;

基本上可以归结为:

cout2 = cout << "Your varibales is";
cout3 = cout2 << var1;
cout3 << endl;

cout上的<<或多或少等同于在Console上调用Write <<仅返回控制台对象,以便可以使用链接

当你尝试

Console.WriteLine("The answer is " , answer); //without placeholder

这不会给您错误,但不会打印answer ,控制台输出将是The answer is因为您还没有告诉您将变量answer放在这里的位置。 因此,如果您要打印答案,则可以使用其他帖子建议的使用+串联,或者必须使用占位符

莱茨举一个例子来了解在哪里使用什么。 假设您有很多变量要显示在输出中。 您可以使用占位符,以便于阅读。

string fname = "Mohit";
string lname = "Shrivastava";
string myAddr = "Some Place";
string Designation = "Some Desig";

现在让我们说我们想在输出上显示一些字符串,例如

嘿!! Mohit的姓氏叫Shrivastava ,目前居住在Some Place并且他在Some Place家公司担任Some Desig工作。

因此,我们许多人可能会建议一种方法。

Console.WriteLine("Hey!! " + fname + " whose last name would be " + lname + " is currently living at " + myAddr + " and he is working as " + Designation + " with so n so company.");

在这种情况下,占位符对于提高可读性起着至关重要的作用,例如

Console.WriteLine("Hey!! {0} whose last name would be {1} is currently living at {2} and he is working as {3} with so n so company.",fname,lname,myAddr,Designation);

使用C#6.0字符串插值,您还可以高效地进行操作,例如

Console.WriteLine($"Hey!! {fname} whose last name would be {lname} is currently living at {myAddr} and he is working as {Designation} with so n so company.");

除了这些其他答案,您还可以使用字符串插值

Console.WriteLine($"The answer is {answer}");

暂无
暂无

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

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