Come e quando chiamare il costruttore della classe base in C#Come e quando chiamare il costruttore della classe base in C#
risposta
è possibile chiamare il costruttore della classe base in questo modo:
// Subclass constructor
public Subclass()
: base()
{
// do Subclass constructor stuff here...
}
si potrebbe chiamare il classe base se c'è qualcosa che tutte le classi figlio devono avere l'installazione. oggetti che devono essere inizializzati, ecc ...
Spero che questo aiuti.
Puoi anche chiamare il costruttore della classe base in questo modo: 'Sottoclasse pubblico() {} '- questo ha esattamente lo stesso comportamento del tuo esempio. –
In genere è consigliabile chiamare il costruttore della classe base dal costruttore della sottoclasse per assicurarsi che la classe di base si inizializzi prima della sottoclasse. Si utilizza la parola chiave base
per chiamare il costruttore della classe base. Nota che puoi anche chiamare un altro costruttore nella tua classe usando la parola chiave this
.
Ecco un esempio su come farlo:
public class BaseClass
{
private string something;
public BaseClass() : this("default value") // Call the BaseClass(string) ctor
{
}
public BaseClass(string something)
{
this.something = something;
}
// other ctors if needed
}
public class SubClass : BaseClass
{
public SubClass(string something) : base(something) // Call the base ctor with the arg
{
}
// other ctors if needed
}
Non è solo una buona pratica, è un requisito imposto dal compilatore. [Un costruttore di base verrà chiamato se ti piace o meno.] (Http://stackoverflow.com/questions/3265958/how-can-i-tell-the-inheriting-class-to-not-call-its- base-class-parameter-less-co) –
Buon punto ... chiamerà il ctor predefinito se non si chiama esplicitamente un operatore specifico. –
In Flash/AS3, è possibile eseguire il lavoro nel costruttore sottoclasse, quindi chiamare parzialmente "super()" per eseguire il costruttore della classe base, quindi continuare con più codice nel costruttore della sottoclasse. In C#, si è costretti a chiamare prima il costruttore della classe base, prima che venga eseguito qualsiasi codice nel costruttore della sottoclasse. – Triynko
- 1. Chiamare il costruttore base in C++ CLI
- 2. Non chiamare costruttore della classe base dalla classe derivata
- 3. Come chiamare il costruttore all'interno della classe?
- 4. Come chiamare il costruttore di copia della classe base da un costruttore di copia classe derivato?
- 5. Chiamare il costruttore base quando derivante da ServiceBase?
- 6. Come chiamare correttamente il costruttore della classe base dalla classe ereditata in Delphi Phrism?
- 7. Come chiamare correttamente i metodi della classe base (e il costruttore) dalle classi ereditate in Python?
- 8. Chiamare il costruttore base - Javascript
- 9. Chiamare un costruttore della classe base in seguito (non nell'elenco di inizializzazione) in C++
- 10. Chiamare il costruttore della sottoclasse dalla classe astratta in Java
- 11. PHP [OOP] - Come chiamare manualmente il costruttore della classe?
- 12. Il costruttore della classe base verrà chiamato automaticamente?
- 13. Chiamare super costruttore in C#
- 14. Come posso dire alla classe ereditante di non chiamare il suo costruttore senza parametri della classe base?
- 15. Posso chiamare un costruttore sovraccaricato da un altro costruttore della stessa classe in C#?
- 16. Passaggio membro della classe di classe base costruttore (per riferimento)
- 17. Come posso recuperare il tipo della classe base in C++?
- 18. In Java, è possibile chiamare il costruttore della superclasse di una classe genitore tramite il costruttore della classe figlio della classe genitore?
- 19. CA2000 passando il riferimento oggetto al costruttore base in C#
- 20. Il costruttore può chiamare un altro costruttore in C++?
- 21. Come chiamare metodo della classe base attraverso puntatore alla classe base che punta alla classe derivata
- 22. generico classe base con il costruttore
- 23. Convalida C# base di parametri costruttore di classe
- 24. C'è un modo per chiamare una funzione di base al di fuori della classe in C++?
- 25. Esegui un costruttore derivato prima del costruttore base in C#
- 26. C++ Funzione derivata dall'istanza della classe base
- 27. In PHP, è possibile creare un'istanza di una classe senza chiamare il costruttore della classe?
- 28. L'oggetto della classe base viene creato quando creiamo un nuovo oggetto della sua classe ereditata?
- 29. Un'implementazione buona e di base della classe BigInt in C++
- 30. C++ come chiamare il metodo nella classe derivata dalla classe base
possibile duplicato del [Calling costruttore di base in C#] (http://stackoverflow.com/questions/12051/calling-base-constructor-in- c) e [C# Calling Constructor Base Class] (http://stackoverflow.com/questions/4212624/c-calling-base-class-constructor) –