Я читаю Начало C #, чтобы обновить память на C # (фон в C ++).
Я наткнулся на этот фрагмент в книге:
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);
Приведенный выше фрагмент не будет скомпилирован - поскольку, согласно книге, текст переменной не инициализируется (только инициализируется в цикле), а последнее назначенное ему значение теряется при выходе из блока цикла.
Я не могу понять, почему значение, присвоенное значению L, теряется только потому, что область, в которой было создано значение R, была закрыта - даже если значение L все еще находится в области действия.
Может кто-нибудь объяснить, почему переменная text теряет значение, присвоенное в цикле?.