使用C# 6.0的特性是否会有性能提升?

3

C# 6.0的新特性(如表达式主体方法成员、using static、空值条件运算符或字符串插值)是否会对程序的性能或编译时间产生影响?我喜欢这些新特性,但我想知道在使用它们时是否会有任何性能收益/问题。


9
可以。程序员可以稍微提高性能。 - Glorin Oakenfoot
9
它们只是一些小的语法糖功能,在运行时没有任何影响。 - Hans Passant
2
我敢打赌你无法测量编译时间的任何差异。 - Matthew Watson
6
我能想到的唯一更高效的操作是 nameof。它肯定比使用反射来获取名称要更好。 - Manuel Zelenka
C# 6为产品团队提供了从本地编译器迁移到基于Roslyn的托管编译器的机会,因此其功能集经过精心选择,似乎专注于语言糖。编译速度可能会根据您的代码而快或慢,因为新编译器的行为不同。生成的MSIL应该是相似的,但可能不完全相同。这也可能会影响性能,但影响可能是微妙的。 - Lex Li
1个回答

7

不完全是这样。新功能只是对C#中已经可能的东西进行语法糖的包装。

通过新功能生成的代码,比如空值传播运算符,最终得到的C#代码与之前已有的代码相同。

它确实使得你的性能更好,可能会让代码质量更高,这是一件好事。


3
这篇文章在 .NET 反编译器团队的网站上是一个很好的参考。 - Lex Li

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接