Это явно не , кажется, что это не лучшая практика. Может кто-нибудь объяснить, почему это не будет лучшей практикой или как это работает? Будем благодарны за любые книги или статьи, содержащие объяснения.
//The constructor
public Page_Index() {
//create a local value
string currentValue = "This is the FIRST value";
//use the local variable in a delegate that fires later
this.Load += delegate(object sender, EventArgs e) {
Response.Write(currentValue);
};
//change it again
currentValue = "This is the MODIFIED value";
}
Значение, которое выводится, является вторым значением «Изменено» . Какая часть волшебства компилятора делает эту работу? Это так же просто, как отслеживать значение в куче и получать его позже?
[Редактировать]: Учитывая некоторые комментарии, некоторые оригинальные изменения меняются ...