Ich möchte auf "co" in meinem Lambda-Ausdruck zugreifen können. Ist es möglich? wenn ja wie? oder wenn nicht, was soll ich stattdessen tun?Ist es möglich, auf eine Variable in einem Labda-Ausdruck zuzugreifen? C#
Ich möchte einen Code-Block in meiner Funktion "Do" übergeben, wo ich die Variablen im Rahmen von "Do" verwenden könnte.
Bitte stellen Sie mir eine Frage, wenn Sie nicht wissen, worüber ich rede, versuchen Sie es besser zu erklären.
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? */ });
}
}
}
Ich werde aktualisieren diesen Beitrag mit der Antwort, wenn ich einen bekommen: ->One answer that work !!!
'co' ist in einer anderen Klasse deklariert (zumindest sieht es so aus Ihrem Code). Sie müssten es entweder zu einer öffentlichen Eigenschaft der Klasse machen, für die es derzeit deklariert ist, und dann von der anderen Klasse darauf zugreifen oder es über einen Konstruktor- oder Methodenaufruf an die Klasse "Get" übergeben. –