Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要帮助才能理解c中的string.Format#_C#_Asp.net Mvc - Fatal编程技术网

C# 需要帮助才能理解c中的string.Format#

C# 需要帮助才能理解c中的string.Format#,c#,asp.net-mvc,C#,Asp.net Mvc,我不是一名c#程序员,但我想将一些代码从c#转换成php。 我无法理解下面这句话的正确含义 i means my loop index strVar.Add(string.Format("'{0}': '{1}'", (i + 1), fa["id"])); 我找到了以下链接,但它不是我要查找的链接 无法理解它们的确切含义,因为我对c#非常陌生 这将产生一个字符串。假设i+1为2且fa[“id”]为567,则结果字符串为: "'2': '567'" {0}和{1}是字符串中的占位符,它们将

我不是一名c#程序员,但我想将一些代码从c#转换成php。 我无法理解下面这句话的正确含义

i means my loop index
strVar.Add(string.Format("'{0}': '{1}'", (i + 1), fa["id"]));
我找到了以下链接,但它不是我要查找的链接

无法理解它们的确切含义,因为我对c#非常陌生

这将产生一个字符串。假设
i+1
2
fa[“id”]
567
,则结果字符串为:

"'2': '567'"
{0}
{1}
是字符串中的占位符,它们将从其他参数替换为
string.Format
,顺序与它们提供的顺序相同。因此,
{0}
将替换为
(i+1)
{1}
将替换为
fa[“id”]

见:

Format方法的每个重载都使用复合格式 包含基于零的索引占位符的功能,称为格式 项,采用复合格式字符串。在运行时,每个格式项都是 替换为相应参数的字符串表示形式 在参数列表中。如果参数的值为null,则格式为 项被替换为String.Empty。例如,以下调用 Format(String,Object,Object,Object)方法包括一个Format 包含三个格式项{0}、{1}和{2}的字符串,以及一个参数 列出三个项目


Format函数接受一个字符串和一对多参数,{'number'}表示字符串应该接受参数'number'并将其插入该位置

到岸价。 如果i=1,您的代码段将向strVar中添加“'2”:fa[“id”]”的值

(有关更多信息:)

所以{0}表示用后面第一个变量的字符串表示形式替换它。{1} 他说改乘第二辆。 另一种选择是使用:

string s = "World";
Console.PrintLine("Hello " + s + "!");
//Prints: Hello World!
在这种小格式中,它是可读的,但是当您得到很多变量时,看到字符串将变成什么会让人非常困惑。通过使用string.Format(),它将更易于阅读

现在让我们假设您有一个名为id的变量,并且在php中有一个名为fa的数组,您希望使用id对其进行索引。使用string.Format()如下所示:

int id = 3;
Console.PrintLine(string.Format("fa[\"{0}\"]", id)); //Prints: fa["3"]
Console.PrintLine("fa[\"" + id + "\"]"); //Also prints fa["3"] but it is a lot harder to read the code.
首先,您到的链接与此处无关

可以用于格式化字符串(顾名思义)。您可以使用字符串中的格式项,这些项是用花括号括起来的数字。例如:

string text = String.Format("His name is {0}, he is {1} years old.", person.Name, person.Age);

将用索引与编号相同的对象替换所有出现的
{num}
。由于
person.Name
是字符串
{0}
后的第一个对象,因此将替换为
person.Name
等等。

0和1是数组的索引吗?没有引号:“2”:“567”0和1表示变量数组中dynamic@Ryba,是的,没有引号,但为了解释,我留下了它,所以它就像
string str=“'2':'567'
如果你不理解某些东西,请准确地解释是什么给你带来了麻烦,尤其是当网上有这么多资源来解释它的时候。string.Format是.net中文档记录最丰富的方法之一……你看过文档了吗?@Adrian:老实说,我不明白你在我发表评论时的意思。我以为您想参考MSDN,但使用了一些其他文档的名称。我甚至在谷歌上搜索了DNF,结果没有透露任何信息(析取范式?不,杜克核弹永远?不);-)。就在你改变它之前,我意识到你可能指的是.NET框架。为什么这里会有如此负面的评论。请告诉我原因。@Ay34:因为这种方法在网上都有详细的解释。
string text = String.Format("His name is {0}, he is {1} years old.", person.Name, person.Age);