Ну, во-первых, вы определяете свое собственное соглашение об именах и не существует «неправильного» способа сделать это (если оно согласовано).
При этом стандарты Microsoft хороши, если вы делитесь своим кодом с другими.
Обычно имена событий имеют следующий вид:
public class Car
{
// is event named correctly?
public event EventHandler<EventArgs> SomethingHasHappened;
private void MoveForward()
{
OnSomethingHasHappened();
}
// is the named correctly
protected virtual void OnSomethingHasHappened()
{
EventHandler<EventArgs> locum = SomethingHasHappened;
if(locum!= null)
{
locum(this, new EventArgs());
}
}
}
Обратите внимание, что событие названо без префикса «Вкл.», А метод запуска события имеет имя с префиксом «Вкл.».
Метод запуска события также защищен виртуальным
, так что производные классы могут переопределить, чтобы изменить / добавить к поведению, а также использовать его для запуска самого события, когда это необходимо.
Я лично смотрю, как Microsoft называет свои события и как они называют свои обработчики.
class Form{
public event EventHandler<EventArgs> MouseMove;
public virtual void OnMouseMove()
{
if(MouseMove != null)
{
MouseMove(this, new EventArgs());
}
}
}
class Application{
public Application()
{
Form form = new Form();
form.MouseMove += //Hook your own Method
}
}
Я бы сказал, что соглашение об именовании в порядке, но мне не хватает в вашем примере ЧТО произошло?
Поэтому я бы больше специализировался на названии самого события (например, MovedForward
) или, если вам нужно более обобщенно, вы должны предоставить некоторую дополнительную информацию в EventArgs о том, что изменилось (как ListChanged
в BindingList
).
Почти
Метод для запуска события - On
(из RaiseSomethingHasHappened
)
i. e. OnBeforeOpen
, OnClosing
, OnSomethigHasHappened
Событие
(из OnSomethingHasHappened
)
i. e. BeforeOpen
, Closing
, SomethingHasHappened
обработчик <Инстанс или содержательное имя><_>
(из Car_SomethingHasHappened
)
i. e. Form_BeforeOpen
, Window_Closing
, Car_SomethingHasHappened
-> perfect
Я обычно делаю наоборот:
public event EventHandler SomethingHappened;
private void OnSomethingHappened()
{
SomethingHappened();
}
Затем:
private void Car_SomethingHappened()
{
}
Не самый чистый код, но именование - это то, как я это делаю. Если нет четкого имени локальной переменной или оно не имеет смысла, я добавляю к имени "Handler":
private void SomethingHappenedHandler() {}