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

时间:2017-01-09 03:36:49

标签: c# c++ string console-application

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

let scroll2TopOffset = CGPoint(x: 0, y: 0)
self.aboutUsScrollView.setContentOffset(scroll2TopOffset, animated: true)

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

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

因为我在没有Console.WriteLine("The answer is {0}" , answer); 的情况下打印答案时出错。 我在网上搜索过,但它没有提供我需要的信息..

5 个答案:

答案 0 :(得分:3)

根据变量必须是字符串的条件,使用连接没有必要这样做,否则你必须使用.ToString()进行转换,并且还要格式化对象:

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

answer成为DateTime对象,并且您只想打印日期格式为&#34; dd-MMM-yyyy&#34;然后你就可以这样使用:

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

占位符仅用于字符串格式化WriteLine方法在内部调用String.Format方法,但您可以自行格式化,也可以使用多个{{1语句:

Console.Write

例如,或多或少等同于您在C ++程序中执行的操作,因为声明:

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

基本归结为:

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

cout2 = cout << "Your varibales is"; cout3 = cout2 << var1; cout3 << endl; 上的<<或多或少等同于cout上的Write; Console只返回控制台对象,以便可以使用链接

答案 3 :(得分:1)

当你尝试

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

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

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

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

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

  

喂!!姓氏为Mohit的{​​{1}}目前居住在Shrivastava,他正在Some Place与{n}公司合作。

因此,其中一种方式可能是我们很多人提出的

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.");

使用C#6.0 String Interpolation,你也可以像

那样高效地完成
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);

答案 4 :(得分:1)

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

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