2016-04-20 11 views
0

Ich bin neu in C# und ich versuche, einen Konstruktor zu erstellen, der einen Konstruktor der Basisklasse verwendet. Ich muss die Werte der Engine-Klasse innerhalb der Klasse Constructor of Car festlegen.Verwenden des Konstruktors der geerbten Klasse im Konstruktor

Hier ist, was ich habe jetzt:

public Car (double brand, double model, double engineCap, double fuelCount, double fuelCap) 
: base (SetEngine(engineCap, fuelCount, fuelCap)) 
    { 
     this.brand = brand; 
     this.model = model; 

    } 

    private static Engine SetEngine(double engineCap, double fuelCount, double fuelCap) 
    { 
     Engine engine = new Engine(engineCap, fuelCount, fuelCap); 
     return engine; 
    } 
} 

Meine Implementierung hier wahrscheinlich falsch ist. Hier ist der Konstruktor der Basisklasse:

public Engine(double engineCap, double fuelCount, double fuelCap) 
    { 
     this.engineCap = engineCap; 
     this.fuelCount = fuelCount; 
     this.fuelCap = fuelCap; 
    } 

Die Basisklasse von Auto ist Engine.

+0

sorry, missclick – user3653415

+0

Also was ist * die Basisklasse von 'Car'? Kannst du ein [mcve] posten? – nvoigt

+0

@nvoigt die Basisklasse von Auto ist Engine. – user3653415

Antwort

3

rufen Sie einfach den Basisklassenkonstruktor mit den Parametern es erwartet:

public Car (double brand, double model, double engineCap, double fuelCount, double fuelCap) 
    : base (engineCap, fuelCount, fuelCap) 
{ 
    this.brand = brand; 
    this.model = model; 
} 
0

erstellen Instanz von Motor zuerst und dann als Argument Auto passieren. oder erstellen Sie die Engine-Instanz im Auto selbst und weisen Sie sie dem geschützten Element der Basisklasse zu.

Verwandte Themen