Sto leggendo Beginning C# per aggiornare la memoria su C# (background in C++).Ambito variabile in C#
mi sono imbattuto in questo frammento nel libro:
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);
Il frammento di cui sopra non compilerà - perché, secondo il libro, il testo variabile non è inizializzata, (inizializzato solo nel ciclo - e il valore l'ultimo assegnato ad esso viene perso quando si esce dal blocco di loop
Non riesco a capire perché il valore assegnato a un valore L viene perso solo perché l'ambito in cui è stato creato il valore R è stato chiuso, anche se il Il valore L è ancora incluso.
Qualcuno può spiegare perché il testo variabile perde il valore assegnato nel ciclo ?.
Ha chiesto a qualcuno di spiegare perché ... – DaveHogan
Sry, colpa mia. +1 poi, anche se non capisco quale valore dovrebbe perdersi dato che tutto rimarrebbe nella portata. modifica: ancora, quali sono i valori L e R? : D – atamanroman
@fielding: lvalue di solito significa un valore che può essere assegnato a, un valore di rvalue è qualsiasi espressione, vedere http://en.wikipedia.org/wiki/Value_%28computer_science%29 –