看不懂的代码系列1 lambda定义只读属性的语法糖

public class Singleton
{
    private static readonly Lazy lazyInstance = new Lazy(() => new Singleton());

    // 私有构造函数,防止外部实例化
    private Singleton() { }

    // 公共访问点
    public static Singleton Instance => lazyInstance.Value;

    public void SomeMethod()
    {
        // 实例方法
    }
}

public static Singleton Instance => lazyInstance.Value;是什么写法??

在C#中,=> 符号表示Lambda表达式的开始。在这个特定的情况下,=> 用于定义一个只读属性(或方法)的简写。例如,public static Singleton Instance => lazyInstance.Value; 这行代码可以被理解为定义了一个名为 Instance 的只读属性,它返回 lazyInstance.Value 的值。

这种写法是从C# 6.0开始引入的一种语法糖,使得编写只读属性的语法更加简洁和清晰。

正常写是什么样子

public static Singleton Instance
{
    get
    {
        return lazyInstance.Value;
    }
}

你可能感兴趣的:(开发语言)