Esiste un modo per non essere obbligati a includere membri con la proprietà MustOverride quando si eredita? Sto lavorando su un MembershipProvider personalizzato e ho solo bisogno di accedere ad alcuni membri. È puramente una cosa estetica - odio solo dover eliminare 100 righe di dichiarazioni di membri inutilizzate.Solo curioso, in ogni modo, MustOverride in C#?
risposta
È possibile fare clic con il tasto destro del mouse sulla classe ereditata e selezionare "Implementa questo ..." e creerà le definizioni del metodo per il lancio di NotImplementedException() finché non si riscrive il codice del metodo.
No, non c'è.
Btw, MustOverride è solitamente chiamato astratto in C#.
Non viene solitamente chiamato, viene chiamato IS. – Will
MustOverride (abstract in C#) specifica che deve essere sovrascritto. Non c'è modo di aggirarlo.
È possibile fare in modo che Visual Studio stub funzioni, ma è necessario che esistano affinché la classe sia istanziata.
Un'altra opzione: se si eseguono più versioni, è possibile creare una classe che implementa i membri (lanciando NotImplementedException o non facendo nulla) e quindi deriva dalla classe THAT. La tua versione concreta avrebbe solo bisogno di sostituire i metodi specifici che desideri.
Sì, c'è ... Dichiara la tua classe anche come astratta! :-P
Ora, seriamente, pensaci. Se non si implementi un membro astratto in una classe non astratta, immagina cosa succederebbe in fase di esecuzione, quando si chiama un metodo senza implementazione? In C++, questo era possibile, e si otterrebbe un errore "Pure virtual function call".
- 1. Dichiarazione di MustOverride condivisa
- 2. Qualcuno può spiegare MustOverride?
- 3. Curioso caso di segfault
- 4. Il curioso caso di "se" in Java
- 5. Matrice di vettori C++ - comportamento curioso quando si aggiungono elementi
- 6. Un modo curioso di passare un parametro ad un metodo
- 7. Messaggio di errore curioso relativo agli impliciti
- 8. Curioso del nuovo modo in cui YouTube sta caricando le pagine
- 9. Un caso curioso nella programmazione parallela
- 10. Come hanno solo ogni altro confine, in un persp
- 11. Prestazioni di loop curioso Java
- 12. Curioso rallentamento in opengl quando si utilizza il rendering istanza
- 13. Passando solo un tipo come parametro in C#
- 14. Solo curioso di sapere come creare una sottoclasse di oggetti String. (prototipicamente)
- 15. Ereditabile solo all'interno dell'assieme in C#
- 16. Ostreams di solo debug in C++?
- 17. Ogni programma Objective C viene convertito in codice C?
- 18. In che modo Maven compila solo i file java modificati?
- 19. Eseguire un metodo in ogni richiesta in MVC, C#?
- 20. Limita l'attributo personalizzato in modo che possa essere applicato solo a tipi specifici in C#?
- 21. In C, l'inizializzazione dell'array con un solo elemento trattato in modo speciale?
- 22. Come scrivere un programma in C++ in modo che si cancelli da solo dopo l'esecuzione?
- 23. C'è qualche ragione per dichiarare qualcosa "volatile const" in C ma solo "volatile" in C++?
- 24. Concedere all'utente un solo punto ogni giorno
- 25. Debug solo Obj-C/C in Xcode 4.3?
- 26. Come compilare un solo file in C#?
- 27. Comprimi solo #regioni (!) In C# (Visual Studio)
- 28. Esegui un'operazione ogni x secondi per y minuti in C#
- 29. Timing in modo elegante in C++
- 30. Variabili costruite in modo implicito in C++
Spiffy! Ciò risparmia un po 'di tempo. Grazie. –