Инициализация и удаление переменных из памяти - C#
Формулировка задачи:
Скажите, правильно ли я понимаю процесс? (в коде я поставил комментарии)
Если что, исправьте и покажите, что я понимаю неправильно.
public void Method1()
{
int v1;
//здесь произойдет выделение памяти в стеке под переменную v1
if(true)
{
//здесь произойдет выделение памяти в стеке под переменную v2
int v2;
//здесь переменная v2 удалится из стека и ее в памяти больше нет
}
{
//здесь произойдет выделение памяти в стеке под переменную v3
int v3;
//здесь переменная v3 удалится из стека и ее в памяти больше нет
}
//здесь произойдет выделение памяти в стеке под переменную v4 и v5
int v4, v5;
//здесь переменные v1, v4 и v5 удалятся из стека
}Решение задачи: «Инициализация и удаление переменных из памяти»
textual
Листинг программы
.method private hidebysig static void Method1() cil managed
{
.maxstack 1
.locals init (
[0] int32 v1,
[1] int32 v2,
[2] int32 v3,
[3] int32 v4,
[4] int32 v5)
L_0000: nop
L_0001: ldc.i4.5
L_0002: stloc.0
L_0003: nop
L_0004: ldc.i4.s 50
L_0006: stloc.1
L_0007: nop
L_0008: nop
L_0009: nop
L_000a: ldloc.1
L_000b: call void [mscorlib]System.Console::WriteLine(int32) // 50
L_0010: nop
L_0011: ret
}