C# Var 与目标类型的新

C# Var vs Target-typed new

C#9 是 officially announced 几天前。一种新的语言特性是 "target-typed new expressions",它在用法上与 var 非常相似。比较以下声明,我很好奇哪个性能更高(如果有的话),以及对于不同的上下文应该首选哪种语法。

var person = new Person() 对比 Person person = new().

对于集合:

var people = new[] {
    new Person(),
    new Person(),
    new Person(),
}

var people = new Person[] {
    new(),
    new(),
    new(),
}

var person = new Person()Person person = new() 将编译为相同的 IL 代码。它们只是告诉编译器要初始化哪种类型的两种不同方式;它们与运行时性能没有任何关系。