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背景的新手,我只想确保在以后的运行中不会出现任何问题。
答案 0 :(得分:8)
在Reflector中,它将为构建字符串分配更多的内存,但是传入额外的对象没有大的反响。
还有“副作用”,如果你不小心在{n}
过大的格式字符串中包含n
,然后添加了一些备用参数,你将不再获得异常但获取包含意外项目的字符串。
答案 1 :(得分:2)
如果您查看为string.Format
提供的链接的例外部分“格式项的索引小于零,或大于或等于args数组的长度。”
如果你有太多的参数,微软并没有表明它可以抛出,所以它不会。由于无用的参数
,效果是内存损失很小