使用list <type>或var关键字区别

Sta*_*ser 0 c# resharper var

可能重复:
C#'var'与特定类型性能

当我写下面的代码:

List<string> list = new List<string>();  
Run Code Online (Sandbox Code Playgroud)

resharper希望将其转换为

var list = new List<string>();          
Run Code Online (Sandbox Code Playgroud)

为什么?有什么不同?它更容易理解吗?我想不是.

使用varRAM的成本高于其他成本.不是吗?

Dav*_*ych 7

他们是一样的.var是隐式输入的.

如果将鼠标悬停var在Visual Studio中的关键字上,它将显示对象的类型 - 在本例中List<string>.使用var只是为了清理代码 - 你已经知道你正在创建一个类型的对象List<string>,所以有些人认为输入是多余的:

List<string> list = new List<string>();
Run Code Online (Sandbox Code Playgroud)

没有性能差异,因为编译器已经知道对象是什么类型.主要使用var个人偏好 - 如果你愿意,可以使用它,并且没有性能损失.

Eric Lippert var 在这里有一篇很棒的博客文章.

我认为你是混乱vardynamic,这是两个完全不同的事情.该dynamic类型是一个类型,它允许您在运行时不同类型的值赋给它.