Почему событие не выполняется над переменной int i;
public partial class Site : System.Web.UI.MasterPage
{
int i = 0; //эта переменная не выполняется в обработчике дважды
// происходит переинициализация
LinkButton link = new LinkButton();
public void link_Click(object sender, EventArgs e)
{
i++; //здесь происходит событие увеличения переменной i
link.Text = i;
}
protected void Page_Load(object sender, EventArgs e)
{
link.Text = "+++";
link.Click += new EventHandler(link_Click);
form.Controls.Add(l);
form.Controls.Add(link)
}
}
Точнее оно выполняется однажды так, как будто вся страница инициализируется заново, но в саму инициализацию линка добавляются старые данные.
суть в том что статические данные изменяются, но остаются в памяти при сбросе даже браузера.
если не изменят код проекта то следующий запуск приложения выдаёт те данные которые были инициализированы в предыдущем
class ins
{
public static int i;
public void count() { i++; }
public static int getI() { return i; }
}
Источник: Stack Overflow на русском