Laden...

Der Aufruf einer Methode loest eine andere Methode aus (Verknuepfung)

Erstellt von Johnnnny vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.156 Views
J
Johnnnny Themenstarter:in
1 Beiträge seit 2011
vor 13 Jahren
Der Aufruf einer Methode loest eine andere Methode aus (Verknuepfung)

Hallo CSharp Freunde,

ich wuerde gerne zwei Methoden miteinander verknuepfen. Zum Beispiel "Katze fuettern" mit "Katze schnurrt".

Ich kann in der Main() Methode die Methode "Katze fuettern" der Klasse Katze aufrufen. Ich komme aber nicht drauf wie ich die Methode "Katze schnurrt" mit der Methode "Katze fuettern" aufrufen/ausloesen kann, ohne "Katze schnurrt" static zu setzen.

In diesem Fall kann ich die Methoden nur in Verbindung mit einem Objekt ausfuehren, aber das geht nicht innerhalb der Methode "Katze fuettern". Ich kann zwar das Objekt in die Methode uebergeben, aber das scheint mir keinen Sinn zu machen.

Ist fuer euch sicher ne doofe Frage, aber ich komm aleine nich drauf.

Vielen Dank

D
216 Beiträge seit 2009
vor 13 Jahren

In "Katze fuettern" this.schnurren() oder wie auch immer deine Methode heißt aufrufen.

Darth Maim

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Falls Darth Maim es noch nicht getroffen hat und Dein Problem anders gelagert ist, schau Dich mal mit den Stichworten Delegates/Delegaten und Events/Ereignissen um, zum Beispiel in [Artikel] Delegaten, anonyme Methoden, Lambda-Ausdrücke & Co. und [FAQ] Eigenen Event definieren / Information zu Events

Bitte beachte vorsorglich auch [Hinweis] Wie poste ich richtig?

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

4 Beiträge seit 2009
vor 13 Jahren
public class Cat
{
   void feed()
   {
     Console.WriteLine("Feeding the cat - yum yum yum");
     purr();
   }

   void purr()
   {
     Console.WriteLine("prrrr prrr prrr");
   }

   public static void Main(String[] args)
   {
      new Cat().feed();
   }   
}

Clean Code Developer

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo zusammen,

jetzt könnte ich die Funktion "Hätte ich genauso geschrieben"-Funktion um positives Feedback aus der Community zu ermöglichen gebrauchen 😃 um MarsSteins Beitrag zu unterstützen. Offensichtlich geht es Johnnnny gerade nicht darum die Methode direkt aufzurufen. Events wären dafür genau die Lösung.

herbivore

157 Beiträge seit 2008
vor 13 Jahren

Also wie ich das verstehe ist das Problem, dass "Katze fuettern" statisch ist und "Katze schnurrt" nicht.

public class Cat
{
   void static feed()
   {
     Console.WriteLine("Feeding the cat - yum yum yum");
     purr(); // Geht natürlich nicht, weil purr nicht statisch ist und eine Instanz benötigt
   }

   void purr()
   {
     Console.WriteLine("prrrr prrr prrr");
   }

   public static void Main(String[] args)
   {
      Cat.feed();
   }
}

Allerdings verstehe ich nicht, wofür genau man das brauchen sollte. Wenn ichs denn getroffen habe, könntest du den speziellen Fall nennen?