首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# var关键字的使用

C# var关键字的使用
EN

Stack Overflow用户
提问于 2013-04-25 14:58:00
回答 6查看 4.8K关注 0票数 0

我真的对在var中使用C#关键字感到困惑。

我知道,var使代码更容易阅读,但是速度和内存又如何呢?

一个。

  1. var a = 100;
  2. int b = 100;
  3. int c; c = 100;

B.

  1. var listA = new List<obj>();
  2. List<obj>listB = new List<obj>();
  3. List<obj>listC; listC = new List<obj>();

哪个更快?

是否依赖于这种类型?

在这两种情况下都分配了多少内存,以及何时分配了内存?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-04-25 14:59:57

哪个更快?

两者都是一样的。

是否依赖于这种类型?

我不知道您在这里问的是什么,但是这些代码片段一旦编译,它们之间就没有什么区别了,所以我将使用no。

在这两种情况下都分配了多少内存,以及何时分配了内存?

他们都是一样的。对于int示例,对于所有情况,它都是32位。对于List示例,这三个都将为引用分配一个单词,以及实际列表实例的内存。

票数 4
EN

Stack Overflow用户

发布于 2013-04-25 14:58:50

这是纯粹的编译步骤特性。编译器推断左侧表达式的类型,并将其用作变量类型。因此产生的IL将是相同的。

所以:

代码语言:javascript
运行
复制
var list1 = new List<int>();
List<int> list2 = new List<int>();

完全相同。但是,我可以看到一些例子,其中指定类型可能会产生一些效果,例如:

代码语言:javascript
运行
复制
var i1 = 5;
int i2 = 5;
//vs:
var i2 = 5;
object i2 = 5;

因此,如果实际表达式类型与声明变量类型完全相同,那么它们是完全相同的。但是,如果表达式类型和变量类型不相同,var可能是不同的。

票数 2
EN

Stack Overflow用户

发布于 2013-04-25 15:01:54

var关键字只是一个语法糖。

它不存在于IL中,所以没有区别。

重复主题:

Is there a performance hit in using the 'var' keyword in C#?

Will using 'var' affect performance?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16218182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档