Wo Variablen am besten deklarieren?

Von: , Frage gestellt am Sa, 9. Okt 2004

Hallo Leute,

ich weiß nicht, ob dieses Thema besser bei .NET aufgehoben ist, aber ich versuche mein Glück hier:

Wie gesagt programmiere ich gerade in C#.NET und habe mich gefragt, ob es geschwindigkeitsmäßig einen Unterschied macht, ob ich Variablen, die ausschließlich beispielsweise in einer Schleife verwendet werden, außerhalb der Schleife deklariere oder im Schleifenblock selbst.

Hat das mal jemand getestet oder kann mir sogar erklären, was bei der Deklaration hinter dem Compiler vor sich geht? Da wird doch sicher Speicher zugewiesen. Könnte es sein dass da dann zur Laufzeit bei jedem Schleifendurchlauf etwas zugewiesen oder zumindest verglichen wird, was gar nicht nötig wäre, wenn die entsprechende Variable außerhalb der Schleife deklariert worden wäre?

Gruß
Alexander

3 Antworten zu dieser Frage

  1. Antwort von nach 3 Stunden 1 hilfreich
    Re: Wo Variablen am besten deklarieren?

    Moin Wie gesagt programmiere ich gerade in C#.NET und habe mich
    gefragt, ob es geschwindigkeitsmäßig einen Unterschied macht,
    ob ich Variablen, die ausschließlich beispielsweise in einer
    Schleife verwendet werden, außerhalb der Schleife deklariere
    oder im Schleifenblock selbst.
    Wenn sich das Ding gleich verhält wie der java-compiler (bei dem sich MS ja kräftig "inspiriert" hat) ist es wurscht. Der Compiler sammelt alle Variabeln die innerhalb einer Methode verwendet werden ein und legt sie schon beim Aufruf der Methode an.

    cu

  2. Antwort von nach 6 Stunden 0 hilfreich
    Re: Wo Variablen am besten deklarieren?

    von der Geschwindigkeit gibt es kaum Unterschiede. Vom Konzept der Sichtbarkeit ist jedoch die Variante der lokalen Variablen eindeutig zu bevorzugen! Dadurch werden schwer aufzufindende Programmierfehler vermieden und Speicherleichen vermieden. Lokale Variablen werden automatisch bei Verlassen ihres Gültigkeitsbereichs vom Garbage Collector aus dem Hauptspeicher entfernt...

  3. Antwort von nach 18 Stunden 0 hilfreich
    Re: Wo Variablen am besten deklarieren?

    Hallo Leute,

    ich weiß nicht, ob dieses Thema besser bei .NET aufgehoben
    ist, aber ich versuche mein Glück hier:

    Wie gesagt programmiere ich gerade in C#.NET und habe mich
    gefragt, ob es geschwindigkeitsmäßig einen Unterschied macht,
    ob ich Variablen, die ausschließlich beispielsweise in einer
    Schleife verwendet werden, außerhalb der Schleife deklariere
    oder im Schleifenblock selbst.
    Hallo
    Bei VB ist es ganz klar so:
    Man defininiert seine Variablen dort, wo man sie benötigt.
    Wenn sie innerhalb der Sub Routine definiert werden, gibts am wenigsten Probleme, wie auch schon ein andere geschrieben hat.
    Innerhalb der Schleife kann man ( in VB ) keine Variable definieren, weil es dann schon zu spät ist, bzw. schon vorher eine Variable benötigt wird, weil ja ein Wert zugewiesen werden soll.
    Es spielt aber auch eine Rolle, wie die Optionen, (Option Explicit fordert jedesmal eine definierte Variable was gegenüber der undefinierten Variablen ( = Typ Variant ) Prozessorzeit und Ram-Speicher spart) eingestellt sind.
    Man vergesse auch nicht den Typ Static, welcher gleich bei wiederholtem Aufruf bleibt.
    MfG

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!