Общепринятая практика в С# при создании события, чтобы определить его следующим образом: из примера в .NET Framework Guidelines:
public class CustomEventArgs : EventArgs
{
public CustomEventArgs(string s)
{
msg = s;
}
private string msg;
public string Message
{
get { return msg; }
}
}
...
public delegate void CustomEventHandler(object sender, CustomEventArgs a);
Часто я создаю события, которые вообще не нуждаются в каких-либо аргументах. Обычно я реализую это просто используя Action
для типа обработчика событий.
public event Action LogonScreenExited;
Мне было интересно, есть ли какая-то причина, по которой человек хотел бы следовать "традиционному" образцу. Возможно, подобные события указывают на недостаток дизайна? Однако мои аргументы в пользу использования Action
: YAGNI, зачем внедрять что-то (и даже показывать намерение), когда оно не используется?