可能重复:
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的成本高于其他成本.不是吗?
他们是一样的.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 在这里有一篇很棒的博客文章.
我认为你是混乱var和dynamic,这是两个完全不同的事情.该dynamic类型是一个类型,它允许您在运行时不同类型的值赋给它.