//Durch IClonable geforderte Methode public object Clone() { //Automatisches Kopieren von den Wertetypen (Referenztypen müssen ebenfalls das Interface besitzen und //über die Clone()-Methode erstellt werden PKW neuerPKW = (PKW)this.MemberwiseClone(); return(neuerPKW); }
public List <PKW> ZeigeAllePKWSInGarageAn() { //https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/operators/type-testing-and-cast List <PKW> pkwListe = new List <PKW>(); foreach (Fahrzeug currentFahrzeug in fahrzeugListe) { if (currentFahrzeug is PKW) { PKW pkw = (PKW)currentFahrzeug; pkwListe.Add(pkw); } } //..... return(pkwListe); }
//Ein Kopierkonstruktor erstellt ein neues Objekt mit identischen Eigenschaftsbelegungen, wie das //Vorlagenobjekt, in dem die einzelnen Eigenschaften kompiert werden. Vorsicht bei Referenztypen, diese //benötigen ebenfalls einen Kopierkonstruktor, welcher hier aufgerufen werden muss. //Der Kopierkonstruktor ist eine Alternative zum IClonable-Interface public PKW(PKW alterPKW) { this.Name = alterPKW.Name; this.MaxGeschwindigkeit = alterPKW.MaxGeschwindigkeit; //... }