C#3.0中var关键字的优点

dev*_*ull 3 c# variables

重复:

什么用var或对象名称类型

我无法理解C#3.0中var关键字的必要性使用它有什么好处.我看到了这个问题但却不明白使用它的真正目的

Jon*_*eet 23

当您使用匿名类型作为投影时,它主要用于LINQ:

var query = from person in employees
            where person.Salary > 10000m
            select new { FullName=person.Name, person.Department };
Run Code Online (Sandbox Code Playgroud)

这里的类型query不能显式声明,因为匿名类型没有名称.(在实际情况下,匿名类型通常包含来自多个对象的值,因此没有一个命名类包含所有属性.)

当您使用可能很长的类型名称初始化变量(通常由于泛型)并且仅调用构造函数时,它非常有用 - 它会增加信息密度(减少冗余).这两行中的信息量相同:

List<Func<string, int>> functions = new List<Func<string, int>>();
var functions = new List<Function<string, int>>();
Run Code Online (Sandbox Code Playgroud)

但第二个以更紧凑的方式表达它.

当然,这可能会被滥用,例如

var nonObviousType = 999999999;
Run Code Online (Sandbox Code Playgroud)

但是当类型的变量显而易见时,我相信它可以显着提高可读性.