我希望能夠在我的lambda表達式中訪問「co」。是否有可能這樣做?如果是的話如何?如果不是,我該怎麼做呢?可以在labda表達式中訪問變量嗎? c#
我想在我的函數「Do」中傳遞一段代碼,在那裏我可以使用「Do」範圍內的變量。
如果你不知道我在說什麼,請問我任何問題,生病試圖更好地解釋。
public static type Do<type>(Func<type> fun)
{
OracleConnection co = null;
type ret = default(type);
try
{
co = CreateCo();
MessageBox.Show("Connected");
ret = fun();
}
catch (Exception)
{
MessageBox.Show("Error");
}
finally
{
CloseCo(co);
}
return ret;
}
public static class Get
{
public static class Question
{
public static string byId()
{
//This lambda expression
return Do<string>(() =>
{ co./*here I can't access my object: why? how? */ });
}
}
}
,當我得到一個我會更新這個帖子的回答: - >One answer that work !!!
'co'在另一個類中聲明(至少它看起來像你的代碼那樣)。您需要將它作爲當前聲明的類的公共屬性,然後從其他類中訪問它,或者通過構造函數或方法調用將它傳遞給Get類。 –