Heim > Backend-Entwicklung > C++ > Warum beschwert sich C# über die Neudeklaration einer Variablen in verschiedenen Bereichen?

Warum beschwert sich C# über die Neudeklaration einer Variablen in verschiedenen Bereichen?

Barbara Streisand
Freigeben: 2025-01-16 16:58:15
Original
318 Leute haben es durchsucht

Why Does C# Complain About Redeclaring a Variable in Different Scopes?

C#-Variablenbereich: Warum verwechselt der Compiler „x“?

Der folgende C#-Codeausschnitt:

<code class="language-csharp">if (true)
{
    string var = "VAR";
}

string var = "New VAR!";</code>
Nach dem Login kopieren

Das zweite Deklarieren der Variablen „var“ in einem äußeren Bereich löst den folgenden Fehler aus:

Fehler 1: Eine lokale Variable mit dem Namen „var“ kann in diesem Bereich nicht deklariert werden, da sie eine andere Bedeutung hätte als „var“, die bereits zur Darstellung von etwas anderem im „untergeordneten“ Bereich verwendet wird.

Dieser Fehler tritt auf, weil C# strenge Bereichsregeln erzwingt, die verhindern, dass Variablen mit demselben Namen in überlappenden Bereichen neu deklariert werden. Obwohl die erste „var“-Deklaration auf den inneren Bereich beschränkt ist und keine Auswirkung auf den äußeren Bereich zu haben scheint, behandelt der Compiler beide Instanzen so, als befänden sie sich im selben Bereich.

Das Problem ergibt sich aus den Einschränkungen des Compiler-Designs. Es analysiert Variablen ausschließlich auf der Grundlage ihres Umfangs, unabhängig von der Reihenfolge, in der sie deklariert oder verwendet werden. Also der folgende theoretisch gültige Code:

<code class="language-csharp">string var = "New VAR!";

if (true)
{
    string var = "VAR";
}</code>
Nach dem Login kopieren

Der Compiler betrachtet es auch als ungültig.

Um diese Mehrdeutigkeit zu beseitigen, wird empfohlen, unterschiedliche Variablennamen oder Geschwisterbereiche zu verwenden:

<code class="language-csharp">string varOuter = "New VAR!";

if (true)
{
    string varInner = "VAR";
}</code>
Nach dem Login kopieren

Obwohl Geschwisterbereiche technisch gültig sind, können sie verwirrend sein und werden im Allgemeinen nicht empfohlen. Alternativ ist es besser, Variablen umzubenennen, um Variablen aus unterschiedlichen Bereichen unterscheiden zu können.

Das obige ist der detaillierte Inhalt vonWarum beschwert sich C# über die Neudeklaration einer Variablen in verschiedenen Bereichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage