我这里有一个字符串,
return string.Format("/abcXYZ990099/abc.aspx?IDA={0}&Name={1}&Teacher={2}",
ID, Name, Teacher);
现在因为需求已经改变,我需要从数据库中获取“abcXYZ990099”,是否可以做这样的事情,
return string.Format("/{3}/abc.aspx?IDA={0}&Name={1}&Teacher={2}",
ID, Name, Teacher, NewPropertyValue);
答案 0 :(得分:7)
是的,你可以这样做。但我会重新编制占位符的索引并重新排序参数以适应它们在返回的字符串中出现的顺序,例如。
return string.Format("/{0}/abc.aspx?IDA={1}&Name={2}&Teacher={3}",
NewPropertyValue, ID, Name, Teacher);
答案 1 :(得分:1)
这是完全正常的,格式项可以在字符串中以任何顺序出现。
例如,当格式字符串存储为本地化资源时,格式项可能是特定于文化的顺序。例如,要显示全名,您可以使用:
String.Format(Resources.FullNameFormatString, firstName, middleName, lastName)
显示顺序可能取决于文化,例如:
en-US: "{0} {1} {2}" // First Middle Last
fr-FR: "{2}, {0} {1}" // Last, First Middle
您甚至可能有一个不使用其中一种格式项的本地化版本(例如中间名):
"{2), {0}" // Last, First (middle name not used)
当然,在你的例子中,重新排序项目可能更有意义,正如其他人所说的那样。
答案 2 :(得分:0)
你可以做到。但是改变顺序,因为代码必须是可以理解的。
string.Format("/{0}/abc.aspx?IDA={1}&Name={2}&Teacher={3}",NewPropertyValue, ID, Name, Teacher);