Devo omettere il parametro "e" quando utilizzo EventHandlerEventArgs?

1

Ogni volta che sto definendo i miei eventi personali, utilizzo uno schema come il seguente (che io credo è il modo in cui MSDN consiglia di farlo):

public class MyEventClass
{
    private bool _value; // Backing variable
    public bool Value
    {
        get { return _value; }
        set
        {
            if (value != _value) // Only raise event if value is changed/different
            {
                _value = value;
                OnValueChanged(EventArgs.Empty);
            }
        }
    }

    public event EventHandler ValueChanged; // Anything can subscribe to the event
    protected void OnValueChanged(EventArgs e) // Only this and children can invoke event
    {
        if (ValueChanged != null)
            ValueChanged(this, e);
    }
}

Quindi, il codice cliente deve solo iscriversi all'evento e funziona automaticamente.

Tuttavia, è logico passare il parametro EventArgs e , in particolare con una classe che utilizza EventHandler per aumentare i suoi eventi, poiché la base EventArgs non ha dati, solo EventArgs.Empty .

Sarebbe considerato un passo falso cambiarlo in questo?

protected void OnValueChanged()
{
    if (ValueChanged != null)
        ValueChanged(this, EventArgs.Empty);
}
    
posta Kyle Baran 10.05.2014 - 03:15
fonte

1 risposta

3

È sbagliato? No. Causerà la gente a lamentarsi del tuo codice? No.

Sbarazzerà qualche sviluppatore impegnato per un paio di minuti mentre cerca di scoprire quali sono i parametri e se aiuteranno a risolvere il suo problema? Potrebbe essere ..

Rende la tua classe più facile da usare ...?

Standard e schemi sono utili perché sono facilmente riconoscibili e usati (o ignorati). Deviare dalle convenzioni dovrebbe essere fatto per uno scopo, non solo perché è possibile. Questo vale sia che si tratti di uno stile di parentesi, di nomi di parametri o di elenchi di argomenti. Fallo per un motivo, non solo perché compila.

    
risposta data 10.05.2014 - 05:51
fonte

Leggi altre domande sui tag