栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

字符串输出:C#中的格式还是concat?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字符串输出:C#中的格式还是concat?

试试这个代码。

这是您代码的略微修改版本。
1.我删除了Console.WriteLine,因为它可能比我要测量的速度慢几个数量级。
2.我在循环之前启动秒表,然后在循环之后立即停止它,这样,如果函数需要26.4个滴答来执行,我就不会失去精度。
3.将结果除以一些迭代的方法是错误的。查看如果您有1000毫秒和100毫秒,将会发生什么。在这两种情况下,除以1000000都将得到0 ms。


Stopwatch s = new Stopwatch();var p = new { FirstName = "Bill", LastName = "Gates" };int n = 1000000;long fElapsedMilliseconds = 0, fElapsedTicks = 0, cElapsedMilliseconds = 0, cElapsedTicks = 0;string result;s.Start();for (var i = 0; i < n; i++)    result = (p.FirstName + " " + p.LastName);s.Stop();cElapsedMilliseconds = s.ElapsedMilliseconds;cElapsedTicks = s.ElapsedTicks;s.Reset();s.Start();for (var i = 0; i < n; i++)    result = string.Format("{0} {1}", p.FirstName, p.LastName);s.Stop();fElapsedMilliseconds = s.ElapsedMilliseconds;fElapsedTicks = s.ElapsedTicks;s.Reset();Console.Clear();Console.WriteLine(n.ToString()+" x result = string.Format("{0} {1}", p.FirstName, p.LastName); took: " + (fElapsedMilliseconds) + "ms - " + (fElapsedTicks) + " ticks");Console.WriteLine(n.ToString() + " x result = (p.FirstName + " " + p.LastName); took: " + (cElapsedMilliseconds) + "ms - " + (cElapsedTicks) + " ticks");Thread.Sleep(4000);

这些是我的结果:

1000000 x结果= string.Format(“ {0} {1}”,p.FirstName,p.LastName);
耗时:618毫秒-2213706滴答声
1000000 x结果=(p.FirstName +“” + p.LastName); 耗时:166毫秒-595610滴答



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506852.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号