Ich hoffe, Sie können mir mit dieser C# Frage helfen. Ich habe einige Klassen wie:C# Vererbung brauchen einfache Lösung
public abstract class Animal
{
public abstract void Walk(int param1,int param2);
}
public class Cat : Animal
{
public override void Walk(int param1,int param2){}
}
public class SmallCat : Cat
{
public override void Walk(int param1,int param2){}
}
public class Dog : Animal
{
public override void Walk(int param1,int param2){}
}
Und ich habe eine Controller-Klasse für alle Tiere.
someAnimal.Walk(a,b);
Meine Frage ist: I dont Basisklasse will alle Details kennen bewegen, aber ich brauche mehr Parameter oder verschiedene Parameter für verschiedene Tiere auf Funktion Walk. Was ist ein guter Weg, um das zu lösen?
Die wechselnden Parameter werden übrigens nur benötigt, wenn der andere Benutzer (Controller) die Kontrolle über das Tier übernimmt.
Nachdem ich Ihre Kommentare gelesen habe, habe ich beschlossen, eine einfache UserController-Klasse zu verwenden, die alle Benutzerdetails enthält und diese an die Animal-Klasse sendet, wenn sie die Kontrolle darüber übernimmt.
Nicht ganz sicher, was Sie meinen 'Ich möchte nicht, dass die Basisklasse alle Details über das Bewegen weiß ' – Alex
Pass in etwas, das die Details enthält, die du brauchst? 'abstrakte void Walk (IWalkDetails walkDetails)' –
hmm danke alex. Ich denke, dass es nicht möglich ist, einen Controller zu definieren, ohne alle Details zu kennen. –