[英]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.