Ich lese Anfang C#, um meinen Speicher auf C# (Hintergrund in C++) zu aktualisieren.Variablenbereich in C#
Ich kam in diesem Schnipsel in dem Buch:
int i;
string text;
for (i = 0; i < 10; i++)
{
text = "Line " + Convert.ToString(i);
Console.WriteLine("{0}", text);
}
Console.WriteLine("Last text output in loop: {0}", text);
Das Snippet oben wird nicht kompiliert - denn nach dem Buch, der variable Text nicht initialisiert wird, (nur in der Schleife initialisiert - und der Wert zuletzt zugewiesen ist verloren, wenn der Schleifenblock beendet wird
Ich kann nicht verstehen, warum der einem L - Wert zugewiesene Wert verloren geht, nur weil der Bereich, in dem der R - Wert erstellt wurde, verlassen wurde - obwohl der L-Wert ist immer noch im Bereich.
Kann jemand erklären, warum der variable Text den in der Schleife zugewiesenen Wert verliert ?.
Er bat um jemanden zu erklären, warum ... – DaveHogan
Sry, meine Schuld. +1 dann, auch wenn ich nicht bekomme, welcher Wert verloren gehen sollte, da alles in Reichweite bleiben würde. edit: wieder, was sind L und R Werte? : D – atamanroman
@fielding: Lvalue bedeutet in der Regel einen Wert, der zugewiesen werden kann, ein Rvalue ist ein beliebiger Ausdruck, siehe http://en.wikipedia.org/wiki/Value_%28computer_science%29 –