私のラムダ式で "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? */ });
}
}
}
私は1つを得るとき、私は答えを、この記事を更新します。 - >One answer that work !!!
'co'は別のクラスで宣言されています(少なくともあなたのコードからそのように見えます)。現在宣言されているクラスのパブリックプロパティにするか、他のクラスからアクセスするか、またはコンストラクタやメソッド呼び出しを通じて 'Get'クラスに渡す必要があります。 –