Что считается лучшим стилем для определения события:
public event Action<object, double> OnNumberChanged;
или
public delegate void DNumberChanged(object sender, double number);
public event DNumberChanged OnNumberChanged;
Первый процесс требует меньше времени, но делегат дает имена параметрам. Когда я набираю это, я думаю, что номер 2 - победитель, но я могу ошибаться.
Редактировать: другой (третий) подход является победителем. Читайте ниже.