Большинство биржевых событий .NET имеют эту подпись:
delegate void SomethingSomething(SomethingEventArgs e);
event SomethingSomething OnSomethingSomething;
и
class SomethingEventArgs
{
public string Name;
public int Index;
public double Groar;
}
Почему это лучше (очевидно, в противном случае любой выбрал бы это), чем:
delegate void SomethingSomething(string Name, int Index, double Groar);
event SomethingSomething OnSomethingSomething;
, так как вам не нужно упаковывать параметры в объект, и без инициализаторов (.NET 2.0) это было своего рода упражнение для набора текста.
Одна из причин, которая приходит на ум, эточто вы можете вернуть свои значения проще, когда они упакованы в объект - т.е.Обработчик может изменить член объекта.Однако с многоадресными событиями это не всегда может быть хорошо.
Итак, почему?