使用var类型的性能影响

时间:2019-08-06 04:11:01

标签: c#

我在c#中注意到,使用var可以提高性能,尤其是在声明特定类的变量时。我做了多个基准测试,每次都得到相同的结果。我也在该网站和其他网站上阅读了类似的问题。但实际上没有人对此发表评论。 任何人都可以确认或反驳。  我有一个 图像数据类,clsImageData 和收集clsImageDataCollection。 集合类中的一个函数是SetCaseLowerCase()。 代码是

private void SetCaseLowerCase()
{ 
   foreach (var item in this) 
   { 
      item.DestinationImageName = item.DestinationImageName.ToLower(); 
   } 
} 

现在,如果我使用clsImageData而不是var,它的执行速度会变慢,我已经进行了100000次迭代检查。但是结果总是一样的。也有其他例子。 谢谢

已编辑 我已经测试了这个简单的代码,使用var的性能提高了7/10倍。请告诉我我在做什么错,我使用的是VS 2017,任何CPU的调试模式,我的处理器是四核。谢谢

            sw.Start();
            for (int i = 0; i < 10000000; i++)
            {
                var xyz = "test";
            }
            StopClock(sw, "Example var - ");
            sw.Start();
            for(int i = 0; i<10000000; i++)
            {
                string xyx2 = "test";
            }
            StopClock(sw, "Example type - ");

1 个答案:

答案 0 :(得分:1)

var是以某种方式编译的,使得使用它等于声明变量/类型(除非以其他方式无法完成,而是使用var例如:匿名类型) 。这意味着根本没有性能变化。在https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/var

上了解有关var的更多信息

这是一个演示,键入以下代码:

var list = new List<int>();

请注意,当您将鼠标悬停在list上方时,IDE会显示:

  

(local variable) List<int> list

这样做的原因是var被转换为声明的类型,这意味着var实际上是装饰性的,并且其使用不会影响任何性能。

相关问题