C# 4 中属性的 lamda (=>) 语法的替代方案?

Alternative for the lamda (=>) syntax on properties in C# 4?

例如我想要以下 class(用较新的 c# 版本编写):

public class Database
{
    static Lazy<Database> _instance = new Lazy<Database>(() => new Database());
    public static Database Instance => _instance.Value;
    private string connectionString = "";
    public SqlConnection Connection => new SqlConnection(connectionString);
}

我如何在 C# 版本 4 中执行此操作?

哦,我好像误会你了!

=> 符号对应 return 值(在属性上下文中,它也称为表达式主体 属性)。这是 get 语法的快捷方式:

public int Test => 1;

等于

public int Test { get { return 1; } }

原文question/answer:

您使用匿名方法:

new Lazy<Database>(delegate() { return new Database() });

的行为相同
new Lazy<Database>(() => new Database());

您可以在这里阅读更多内容:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/anonymous-methods