dou*_*ald 14 c# string.format tostring
任何人都可以解释以下任何一种方法是否有任何好处:
decimal d = 12.0m;
// 1. how I'd have done it
myLabel.Text = d.ToString();
// 2. how I saw someone do it today
myLabel.Text = String.Format("{0}", d);
Run Code Online (Sandbox Code Playgroud)
只是为了澄清,我不是在质疑这些方法的作用,我显然对此感到高兴,就好像在这个具体的例子中,在一个方面可能有一个性能优势.我知道string.format()提供的文化和格式增加了灵活性,但我总是只是'tostring()'数字来将它们的值附加到标签或一般的基于文本的属性.
对我来说,string.format()选项似乎更多的打字,这里没有额外的好处,但我想知道是否有任何其他'引擎盖'的好处,一种方式与另一种方式.
Dav*_*ish 28
我在Linqpad做了一点基准测试:
void Main()
{
int iterations = 1000000;
decimal d = 12.0m;
var text = "";
var sw = Stopwatch.StartNew();
for (int i = 0; i < iterations; i++)
{
// 1. how I'd have done it
text = d.ToString();
}
sw.Stop();
sw.ElapsedMilliseconds.Dump("ToString()");
sw = Stopwatch.StartNew();
for (int i = 0; i < iterations; i++)
{
// 2. how I saw someone do it today
text = String.Format("{0}", d);
}
sw.Stop();
sw.ElapsedMilliseconds.Dump("Format");
}
Run Code Online (Sandbox Code Playgroud)
ToString()157
格式264
ToString()看起来更快.
编辑:我应该指出,在我的PC上,1000万"格式化"操作只用了2.2秒.这看起来非常像微优化,除非你所做的是极其性能关键或迭代 - 它不会太担心这一点.
| 归档时间: |
|
| 查看次数: |
21325 次 |
| 最近记录: |