c# - C# 4 中属性的 lamda (=>) 语法的替代方案?
问题描述
例如,我想拥有以下课程(用较新的 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 中做到这一点?
解决方案
哦,我好像误会你了!
=>
标志是返回值(在属性的上下文中,它也称为表达式主体属性)。这是 get 语法的快捷方式:
public int Test => 1;
等于
public int Test { get { return 1; } }
原始问题/答案:
您使用匿名方法:
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
推荐阅读
- php - TYPO3 10.4.12 安装在第二步被阻止
- javascript - 一个接一个地响应执行动作调用不起作用
- apache-spark - Spark 3.0 UTC 到 AKST 转换失败,出现 ZoneRulesException:未知时区 ID
- c# - Sql server 我想让存储过程在运行时获取表名并返回此表中的最后一行
- javascript - Vue firebase查询:如何使用无限加载显示下一个结果?
- java - 在具有特定条件的 ArrayList 中查找值
- java - 当我尝试打开活动时应用程序崩溃
- r - 更新:线图在 R 中变成锯齿形
- scala - Sbt/Scala - Gitlab 依赖
- java - 如何从数据库获取数据到arraylist并显示它们