Sera le constructeur de classe de base est automatiquement appelé?

class Person
{
    public int age;
    public Person()
    {
        age = 1;
    }
}

class Customer : Person
{
    public Customer()
    {
        age += 1;
    }
}

Customer customer = new Customer();

Serait l'âge de la clientèle 2? Il semble que la classe de base du constructeur sera appelé n'importe quoi. Si oui, pourquoi avons-nous besoin d'appeler base à la fin, parfois?

public Customer() : base()
{
    .............
}
  • Techniquement, age est un membre privé, donc ça ne compile pas. Il faudrait public, etc pour travailler.
  • Désolé, je ne le savais pas. Mais c'est juste pour préciser ma question.
  • Si vous spécifiez ni : base(...) ni : this(...) pour un non-constructeur statique, la valeur par défaut est : base() c'est à dire le zéro paramètre de base le constructeur de la classe. Vous avez aussi la première classe Person où votre Person() constructeur appelle implicitement la Object() constructeur de classe de base. Écrit : base() (arguments zéro) est toujours redondants. Essayez également de votre exemple, là où la Person constructeur de la classe prend un ou plusieurs paramètres.
  • non statique est une instruction de clé il y, note ce gotcha concernant les constructeurs statiques: stackoverflow.com/questions/20092211/...
InformationsquelleAutor Ivan Li | 2012-10-31