private void button1_Click(object sender, EventArgs e)
{
//code
//error saying local variable named e can't be passed
this.timer1[i].Tick += new System.EventHandler((s,e)=>this.timer1_Tick(s,e,i));
//code
}
private void timer1_Tick(object sender, EventArgs e, int i)
{
//code
}
Оба метода нуждаются в том же eventArgs. Проблема в том, что мне нужно передать также и второму методу. Любой другой способ сделать это?Делегаты C#: передать текущий метод EventArgs другому методу
Компилятор просто запутался о своем наименовании. Вы пытаетесь ссылаться на вторую переменную с именем 'e'. Измените внутренний 'e' на' ea' или что-то подобное: 'this.timer1 [i] .Tick + = new System.EventHandler ((s, ea) => this.timer1_Tick (s, ea, i)); ' –
, но если я сделаю это, я не могу изменить таймер1 в другой функции. Я получаю nullReferenceException –
Изменение имени внутренней переменной не должно влиять на возможность изменения чего-либо ... 'EventArgs' даже не содержит ничего, что могло бы вам помочь. –