gpt4 book ai didi

c# - 以下在c#中使用expression-bodied语法的方式有区别吗?

转载 作者:太空宇宙 更新时间:2023-11-03 19:38:29 25 4
gpt4 key购买 nike

public DateTime Date => DateTime.Now;

public DateTime Date { get => DateTime.Now; }

两者之间有区别还是语法不同的等效代码?

最佳答案

两种方式产生相同的 IL。

为了

using System;
public class Program {
public DateTime MyDate1 { get => DateTime.UtcNow; }
public DateTime MyDate2 => DateTime.UtcNow;
public void Main() {
}
}

两个版本的缩写 IL 是(我使用 https://sharplab.io ):

    // Methods
.method public hidebysig specialname
instance valuetype [mscorlib]System.DateTime get_MyDate1 () cil managed
{
// Method begins at RVA 0x2050
// Code size 6 (0x6)
.maxstack 8

IL_0000: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_UtcNow()
IL_0005: ret
} // end of method Program::get_MyDate1

.method public hidebysig specialname
instance valuetype [mscorlib]System.DateTime get_MyDate2 () cil managed
{
// Method begins at RVA 0x2050
// Code size 6 (0x6)
.maxstack 8

IL_0000: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_UtcNow()
IL_0005: ret
} // end of method Program::get_MyDate2

(...)

// Properties
.property instance valuetype [mscorlib]System.DateTime MyDate1()
{
.get instance valuetype [mscorlib]System.DateTime Program::get_MyDate1()
}
.property instance valuetype [mscorlib]System.DateTime MyDate2()
{
.get instance valuetype [mscorlib]System.DateTime Program::get_MyDate2()
}

关于c# - 以下在c#中使用expression-bodied语法的方式有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58192955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com