[英]Passing extra argument to string.Format() function in 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背景的新手,我只想确保它在以后的运行中不会引起任何问题。
在Reflector中,它将为构建字符串分配更多的内存,但是传入额外的对象没有大的反响。
还有“副作用”,如果你不小心在你的格式字符串中包含一个{n}
,其中n
太大了,然后添加了一些备用参数,你就不会再得到一个例外但是得到一个带有意外项目的字符串。
如果您查看为string.Format提供的链接的例外部分
“格式项的索引小于零,或大于或等于args数组的长度。”
如果你有太多的参数,微软并没有表明它可以抛出,所以它不会。 由于无用的参数,效果是内存损失很小
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.