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

C#4中属性的lamda(>;)语法的替代方案?,c#,c#-4.0,static,singleton,C#,C# 4.0,Static,Singleton,例如,我希望有以下类(用较新的c#版本编写): 公共类数据库 { 静态惰性_实例=新惰性(()=>新数据库()); 公共静态数据库实例=>\u Instance.Value; 私有字符串connectionString=“”; 公共SqlConnection=>newsqlconnection(connectionString); } 在C#version 4中我怎么能做到这一点呢?哦,好像我误解了你 =>符号用于返回值(在属性上下文中,它也称为表达式体属性)。这是get语法的快捷方式: pu

例如,我希望有以下类(用较新的c#版本编写):

公共类数据库
{
静态惰性_实例=新惰性(()=>新数据库());
公共静态数据库实例=>\u Instance.Value;
私有字符串connectionString=“”;
公共SqlConnection=>newsqlconnection(connectionString);
}

在C#version 4中我怎么能做到这一点呢?

哦,好像我误解了你

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

public int Test => 1;
等于

public int Test { get { return 1; } }

原始问题/答复:

您可以使用匿名方法:

new Lazy<Database>(delegate() { return new Database() });
newlazy(委托(){returnnewdatabase()});
他表现得和我一样

new Lazy<Database>(() => new Database());
newlazy(()=>newdatabase());

您可以在这里阅读更多内容:

尝试使用
公共静态数据库实例{get{return}{Instance.Value;}}
公共SqlConnection连接{get{return new SqlConnection(connectionString);}}
David,我已经重新命名了您的问题。我想这就是你想要的。如果这不是你的意思,请回滚。谢谢:)没关系@MafiiOh我的天啊,我太笨了,我刚刚意识到=>是get属性的缩写xD@DavidWalser请阅读我的最新答案!顺便说一句,这些被称为表达式体属性。
new Lazy<Database>(() => new Database());