Forum: PC-Programmierung Lokale Variable erreichen in c#


von Rinaldo Kolb (Gast)


Lesenswert?

Ich habe folgende Struktur.

void funktion1()
{
   //Dinge tun
    try
    {
        //Dinge tun
        using (var sre = new blah(blahv))
        {
            //Dinge tun
            sre.function(g);
        }
    }
    catch (System.IO.IOException)
    {
        //Dinge tun
    }
}

private void neuefunktion(Typ irgendwas)
{
    g = irgendwas;
    sre.function(g);
}


sre ist bei neuefunktion "im aktuellen kontext nicht vorhanden". Wo 
finde ich sre von neuefunktion aus, wie greife ich von neuefunktion aus 
darauf zu?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Gar nicht.

von Rinaldo Kolb (Gast)


Lesenswert?

Gibst du immer so nutzlose Antworten?

von Peter II (Gast)


Lesenswert?

was willst du hören? Es geht nun mal nicht. Du musst die Variabel schon 
in der klasse anlegen sonst kann du nicht darauf zugreifen.

von Ralf (Gast)


Lesenswert?

> was willst du hören?
Vielleicht will er hören, warum's so ist?
http://de.wikipedia.org/wiki/Variable_%28Programmierung%29#Sichtbarkeitsbereich_von_Variablen_.28Scope.29

Ralf

von Sven H. (dsb_sven)


Lesenswert?

Rinaldo Kolb schrieb:
>         //Dinge tun
>         using (var sre = new blah(blahv))
>         {
>             //Dinge tun
>             sre.function(g);
>         }

Dort wird sre deklariert und initialisiert. Das bedeutet, dass sre NUR 
innerhalb der geschweiften Klammern unter "using" bekannt ist. Um sre 
überall bekannt zu machen, müsstest du es zumindest auf Klassenebene 
(also außerhalb deiner Funktionen) deklarieren.

btw.: Du solltest dir angewöhnen direkt von Anfang an aussagekräftige 
Variablennamen zu verwenden. "blah", "blahv" und "irgendwas" sind eher 
hinderlich, auch für uns, wenn wir dir helfen wollen ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.