Мой класс с событием:
public class WindowModel
{
public delegate void WindowChangedHandler(object source, WindowTypeEventArgs e);
public event WindowChangedHandler WindowChanged;
public void GotoWindow(WindowType windowType)
{
this.currentWindow = windowType;
this.WindowChanged.Invoke(this, new WindowTypeEventArgs(windowType));
}
}
Производный класс событий:
public class WindowTypeEventArgs : EventArgs
{
public readonly WindowType windowType;
public WindowTypeEventArgs(WindowType windowType)
{
this.windowType = windowType;
}
}
Какой-то другой класс, который регистрирует его на событие:
private void SetupEvents()
{
this.WindowModel.WindowChanged += this.ChangeWindow;
}
private void ChangeWindow(object sender, WindowTypeEventArgs e)
{
//change window
}
Что я получил от соблюдения соглашения .Net?
Было бы более разумно иметь такой контракт
public delegate void WindowChangedHandler(WindowType windowType);
public event WindowChangedHandler WindowChanged;
Делая это таким образом, мне не нужно создавать новый класс, и его легче понять.
Я не кодирую библиотеку .Net. Этот код будет использоваться только в этом проекте. Мне нравятся соглашения, но я прав, когда говорю, что в этом примере это не имеет смысла, или я что-то не так понял?