对象初始化器。它比旧方法更快吗?

时间:2010-11-04 08:24:23

标签: c# .net properties

哪个更快,为什么?

Person person = new Person();
person.FirstName = "Scott";
person.LastName = "Guthrie";
person.Age = 32;

...的

Person person = new Person { FirstName="Scott", LastName="Guthrie", Age=32 };

3 个答案:

答案 0 :(得分:5)

这绝对是一个错误的问题*。您应该问,'以下哪一项更具可读性?'这种微基准测试导致代码非常模糊和难以维护(尽管可能不在这种特定情况下)。

  • 例外情况是您已经分析了代码并发现此构造发生在非常热的代码路径中。但是,如果你已经这样做了,你也会对这两种方法进行基准测试,并找到答案: - )。

答案 1 :(得分:2)

AFAIK,后者是前者的语法糖。应该没有区别。

答案 2 :(得分:1)

集合初始值表示法将在编译时“扩展”为第一个表示法,因此不应该有运行时成本。