У меня есть следующая структуратаймера как часть структуры
private struct sData{
public int volume;
public System.Timers.Timer aliveTimer;
public void OnTimedEvent(object source, ElapsedEventArgs e)
{
Console.WriteLine("this = " + volume);// I cannot access volume here
}
}
и когда время, прошедшее с началом я хочу, чтобы изменить значение громкости и я не могу получить доступ к нему в OnTimedEvent Я использую этот код, чтобы начать-структуру и таймер:
sData ret = new sData();
ret.volume = rand.Next(1, 10) * 100;
ret.aliveTimer = new System.Timers.Timer(1000);
ret.aliveTimer.Elapsed += new ElapsedEventHandler(sData.OnTimedEvent);
ret.aliveTimer.Start();
Что мне делать?
Что такое ошибка, которую вы получаете? Кроме того, зачем использовать struct, а не класс? – RvdK
Изменить его как «класс»? В любом случае, беспорядочные 'struct' редко бывают хорошей идеей. Почему вы создали его как 'struct'? –
События на 'struct' обычно являются плохим шагом. Почему это «структура»?Если вы не можете четко ответить **, почему это «структура», то это почти наверняка не должно быть одним. И * изменяемая * 'struct' с открытым полем - это просто * попрошайничество * для проблем. –