String Methode C#

Wir helfen dir natürlich gern, wenn du konkrete Probleme mit deinem Programm hast, aber ein Forum ist kein Ersatz für einen Kurs, die Lektüre eines geeigneten Buches oder das anschauen/durchlesen von Tutorials.

Du bist nicht nur als Nichtschwimmer ins kalte Wasser gesprungen, du hast auch gleich das tiefe Becken gewählt wo du nicht stehen kannst. Ein erfahrener Schwimmer kann dich zwar retten, aber er bringt dir nicht das Schwimmen bei :schluck:

Wirklich niemand wirft dir vor, dass du noch nicht programmieren kannst, aber dann fang doch bitte beim Klassiker "Hallo Welt!" an. Besorg dir ein Einsteigerbuch und beginne mit Seite 1. Wenn du dann irgendwann gegen eine Wand rennst, kannst du natürlich jederzeit eine Frage im Forum stellen, aber wenn du gleich ins 10. Kapitel springst und nur Bahnhof verstehst, ist das Forum nicht die Lösung für das Problem deiner falschen Herangehensweise.

Die ersten Gehversuche mit Funktionen sehen nämlich eher so aus, dass sie an einen übergebenen String nur etwas ranhängen oder davorsetzen - keine komplexe Stringmanipulation und vor allem keine Rekursion.
So ungefähr:

Code:
public string SayHelloTo(string name)
{
   return "Hello " + name;
}

Damit lernt man die Basics einer Funktionsdefinition, wie man ein Ergebnis zurückgibt und wie man das ganze aufruft. Erst wenn das klar ist, kann man sich damit beschäftigen, die Funktion komplexer zu gestalten, weitere Unterfunktionen hinzuzufügen, etc. Irgendwann kommen dann Klassen und Objekte hinzu und so geht's dann Schritt für Schritt weiter.


gamma_matrices schrieb:
Edit: Ich bin mir natürlich absolut im Klaren, dass ich die elementaren Grundlagen komplett intus haben muss!
Nanana, wenn dem so gewesen wäre, hättest du auch mit den Basics begonnen, hast du aber nicht. ;)

Apropos: Was das Debugging angeht, meinte ich zusätzliche Debug.WriteLine (bzw. in einer Consolen-App eben Console.WriteLine) in functionS.

So sähe das dann aus:

C#:
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Code");
        Console.WriteLine(functionS("Code"));
        Console.ReadKey();
    }

    public static string functionS(String sin)
    {
        string sout = "";
        Console.WriteLine("in : {0}", sin);

        if (sin.Length == 1)
        {
            sout = sin;
            Console.WriteLine("out: {0}", sout);
            return sout;
        }
        else
        {
            sout = functionS(sin.Substring(1)) + sin.Substring(0, 1);
            Console.WriteLine("out: {0}", sout);
            return sout;
        }
    }
}

Um den Ablauf zu verdeutlichen, habe ich den String s hier gewissermaßen zweigeteilt. sin ist der String, der in die Funktion reingeht, sout ist der String, der mit return wieder rausgeht. Das ist nicht notwendig gewesen, aber so wird es hoffentlich etwas deutlicher. Führt man das aus, sieht man schön wie die Rekursion erstmal Stufe für Stufe die Treppe runtergeht, um dann am Ende kehrt zu machen und wieder Stufe für Stufe nach oben zu kommen. Der "Umkehrpunkt" ist der, bei dem der ursprüngliche String dann bis auf ein Zeichen runtergesplittet wurde und man in den if-Fall eintritt. Danach ribbeln sich alle zuvor gestarteten Instanzen der Funktion wieder auf.
 
  • Gefällt mir
Reaktionen: simpsonsfan
Zurück
Oben