可能重复:
C#'var'与特定类型性能
大家好,
我最近看到的代码使用var了很多.
例如:
var myString = GetAnyString();
var myInstance = GetClass();
Run Code Online (Sandbox Code Playgroud)
代替
string myString = GetAnyString();
MyClass myInstance = GetClass();
Run Code Online (Sandbox Code Playgroud)
除了可读性(我认为使用var不是很易读),使用它有什么优点和/或缺点吗?性能如何?
And*_*zub 21
这是主观的,但我不喜欢使用变量.至于我,他们没有提高可读性.
但一般var使用指南如下:
使用var时,它是绝对清楚的被宣告什么类型的变量:
Dictionary<string, Dictionary<string, string>> varOfSomeLongType = new Dictionary<string, Dictionary<string, string>>();
Run Code Online (Sandbox Code Playgroud)
或者当您声明匿名类型的变量时:
var linqResult = from element in SomeCollection
select new { element.A, element.B }
Run Code Online (Sandbox Code Playgroud)
Aur*_*bon 13
var由具有正确类型的编译器替换,因此除了非常小的编译时间开销之外,没有运行时性能命中(veeeeeeeery small).
实际上,从vue的可读性角度来看,我个人如下:
变量实例化: object myVar = new object();
变量传播: var myVar = anotherVar.getComplexObject();
此外,当您进行非常复杂的类型实例化时,您可能会想要使用它们,例如:
var myDict = new Dictionary<string, List<Tuple<string, object>>>();
Run Code Online (Sandbox Code Playgroud)
在这里,它确实提高了可读性.