Эти два значения эквивалентны, компилятор преобразует OnAdd("It Happened");
в OnAdd.Invoke("It Happened");
для вас.
Я полагаю, что это вопрос предпочтений, однако лично я предпочитаю более краткую форму.
В целом, как правило, предпочтительнее взять локальную копию делегата уровня класса, прежде чем вызывать ее дляизбегать условия гонки, при котором OnAdd
не является нулевым во время проверки, но в то время, когда оно вызывается:
private void SomethingHappened()
{
Action<string> local = OnAdd;
if (local != null)
{
local("It Happened");
}
}