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
例如我想要以下 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