Lambda运算符简化方法体是否为语法糖?两种写法编译后是否一致?
问题解答
1. 为方法体使用Lambda运算符是否仅为语法糖?
是的,这种用=>定义方法体的写法完全是语法糖,它只是C#为简化代码书写提供的语法形式,没有引入任何新的底层运行逻辑。
2. 以下两种方法声明编译后是否完全相同?若不同,使用第一种简短语法是否会产生性能损耗?
两种写法示例:
(1) 简短语法:
public void MyMethod() => ... ;
(2) 常规语法:
public void MyMethod() { ... }
这两种写法编译后的IL代码完全一致,不存在任何性能差异。编译器会直接把简短语法转换成和常规方法体完全相同的中间代码,运行时不会产生额外的性能损耗。
内容的提问来源于stack exchange,提问作者MonkeyFace
相关产品推荐
相关产品推荐

