C# {0}在字符串文字中是什么意思,例如在Console.WriteLine中?
我在学习C#时遇到了一小段代码:C# {0}在字符串文字中是什么意思,例如在Console.WriteLine中?,c#,variables,curly-braces,curly-brackets,C#,Variables,Curly Braces,Curly Brackets,我在学习C#时遇到了一小段代码: { class Program { static void Main(string[] args) { int age = 20;// declaring variable and assign 20 to it. Console.WriteLine("You are {0} years old.",age); Console.ReadLine();
{
class Program
{
static void Main(string[] args)
{
int age = 20;// declaring variable and assign 20 to it.
Console.WriteLine("You are {0} years old.",age);
Console.ReadLine();
}
}
}
我不明白{0}
将如何输出20。我的意思是,它不像数组索引或任何东西,那么它如何知道它指的是变量age
?我在逗号后看到变量,但这是否意味着如果我放置{1},它将在年龄后检索变量
另外,这个特性在C中被称为什么?我似乎找不到它。它是一个字符串格式化程序,它将被值替换 这个特性在C中叫什么?我似乎找不到它 在C级:它不是——因为它根本不是C级功能;它只是一个库功能-另请参见
string.Format
。这个方便的实用程序方法定位{0}
,{1}
,{2}
等,并用第0、第1、第2等参数替换它们。很明显,这不仅仅是一个问题(还有更复杂的格式可用——模式;负与正,等等)
Console.WriteLine
的文档如下:
哪些链接指向“复合格式”:-BCL团队称之为“复合格式”:
NET Framework复合格式功能将对象列表和复合格式字符串作为输入。复合格式字符串由固定文本和索引占位符(称为格式项)组成,这些占位符与列表中的对象相对应。格式化操作将生成一个结果字符串,该字符串由原始固定文本与列表中对象的字符串表示形式混合而成
这与标准C
printf()函数类似。值在字符串之后传递,并按传递变量的顺序进行格式化
string.Format("Var1: {0}, var2:{1}, TheVery{3}InHere", "val1", "val2", "LongText");
为什么投票结果如此接近?:)接近票数的人赞成这个“离题”的问题。我个人并不认为这个问题“离题”。