将额外参数传递给C#中的string.Format()函数

时间:2012-11-30 12:51:52

标签: c#

C#中的string.Format函数传递和额外参数是否有任何副作用?我正在查看MSDN上的string.Format函数文档(http://msdn.microsoft.com/en-us/library/b1csw23d.aspx)但无法找到答案。

例如: -

string str = string.Format("Hello_{0}", 255, 555);

现在,你可以看到根据格式字符串,我们假设只传递一个参数,但我已经传递了两个。

修改 我已经尝试过了,一切看起来都不错。由于我是C#和C背景的新手,我只想确保在以后的运行中不会出现任何问题。

2 个答案:

答案 0 :(得分:8)

在Reflector中,它将为构建字符串分配更多的内存,但是传入额外的对象没有大的反响。

还有“副作用”,如果你不小心在{n}过大的格式字符串中包含n,然后添加了一些备用参数,你将不再获得异常但获取包含意外项目的字符串。

答案 1 :(得分:2)

如果您查看为string.Format

提供的链接的例外部分

“格式项的索引小于零,或大于或等于args数组的长度。”

如果你有太多的参数,微软并没有表明它可以抛出,所以它不会。由于无用的参数

,效果是内存损失很小