È buona pratica assegnare una classe istanziata a una proprietà statica nella stessa classe?

0

Ho codice che è stato scritto da qualcun altro che si comporta così:

Su un ViewModel:

public static ACertainViewModel Default { get; private set; }

Nello stesso costruttore di ViewModel:

    public ACertainViewModel()
    {
        Default = this;
    }

Su un metodo nella classe implementato da ACertainViewModel:

        if (ACertainViewModel.Default != null && ACertainViewModel.Default.property != null)
        //do something to property

Sembra funzionare, ma non sembra davvero giusto. Può qualcosa andare storto qui?

    
posta Tyress 03.08.2015 - 12:09
fonte

1 risposta

4

Avere un'istanza predefinita statica come quella va bene.

Questa particolare implementazione non va bene. Se si dispone di un'istanza predefinita statica, mi aspetto che ci sia un'istanza predefinita statica una . Come mostrato, questo cambia l'istanza predefinita statica ogni volta che ne fai uno (e lo lascia null fino a quel momento).

Sarebbe meglio farlo in un costruttore statico, in un inizializzatore o in un getter in modo da averne solo uno, ed è sempre lì quando lo chiedi.

    
risposta data 03.08.2015 - 13:35
fonte

Leggi altre domande sui tag