Jonas95 Geschrieben 5. Dezember 2010 Geschrieben 5. Dezember 2010 Hallo Com, ich habe folgendes Problem: Ich habe eine Konsolenaplikation geschrieben: static void Main(string[] args) { int i; string Wort; Console.WriteLine("Geben sie bitte ihr Wort ein."); Wort = Console.ReadLine(); for (i = 0; i < Wort.Length; i++) { Console.WriteLine("Hallo I {0}",Wort[i]); } Console.ReadLine(); } Hierbei gibt er das Wort eben vorwärts aus. Könntet ihr mir vielleicht sagen, wie ich es schaffen könnte, das Wort rückwärts auszugeben, da ich nicht die geringste Ahnung habe wie. Danke schonmal für die Hilfe. Zitieren
Gateway_man Geschrieben 5. Dezember 2010 Geschrieben 5. Dezember 2010 static void Main(string[] args) { int i; string Wort; Console.WriteLine("Geben sie bitte ihr Wort ein."); Wort = Console.ReadLine(); for (i = 0; i < Wort.Length; i++) { Console.WriteLine("Hallo I {0}",Wort[Wort.Length-i]); } Console.ReadLine(); } lg Gateway Zitieren
lilith2k3 Geschrieben 5. Dezember 2010 Geschrieben 5. Dezember 2010 (bearbeitet) Das ganze lässt sich auch mit weniger Aufwand realisieren. Unter .NET 3.0 wurden für solche Fälle die sog. Extension Methods eingeführt. Ziel der ganzen Sache ist es, Typen zu ergänzen. Und die Erweiterung der Strings um genau eine solche Reverse() ist ein Klassiker. Bau Dir eine eigene Klassenbibliothek, wo all Deine Extensionmethods zusammenkommen, die Du dann in alle Projekte einbinden kannst. Oder hier für den Übungszweck erweitere Dein Programm um eine öffentliche, statische Klasse. Öffentlich Statisch deshalb, weil die Methode ja überall und ohne Instanziierung zur Verfügung stehen soll. Dort ergänzt Du eine statische,öffentliche Methode, die als Rückgabewert einen String besitzt und der Aufrufparameter ist (this string $Variablenname). Diese Signatur zeigt an, dass Du Dich auf den String-Typ beziehst. Das ganze sieht dann ungefähr so aus: public static class MyExtensionMethod { public static string Reverse(this string Text) { char[] TextArray = Text.ToCharArray(); Array.Reverse(TextArray); return new string(TextArray); } } [/PHP] Du wandelst den übergebenen String in ein Char-Array um. Das Array besitzt die Methode Reverse. Aus dem so veränderten Array generierst Du einfach einen neuen String, den Du zurückgibst :] [PHP]Console.WriteLine("Probetext".Reverse()); Wäre dann ein möglicher Aufruf. P.S.: Und das tolle daran... dieser Aufruf steht Dir dann überall da, wo die Klasse verfügbar ist, zur Verfügung. P.P.S.: Extension Methods sind ein Mittel um alle Objekte zu erweitern. Das Prinzip ist immer das gleiche. Bearbeitet 5. Dezember 2010 von lilith2k3 Zitieren
Jonas95 Geschrieben 5. Dezember 2010 Autor Geschrieben 5. Dezember 2010 Also ein großes Dankeschön an euch für diese tollen Antworten. Es ist echt schon faszinierend, dass man in C# solche Typen ergänzen kann. Da ich noch nicht so lange mit C# programmiere und noch relativ ein Anfänger bin, ist es echt schon heftig was man alles damit machen kann. Und danke für die Tipps lilith2k3. Nochmals danke für die Hilfe. Zitieren
lilith2k3 Geschrieben 5. Dezember 2010 Geschrieben 5. Dezember 2010 ist es echt schon heftig was man alles damit machen kann. Jop! C# kommt dem Programmierer sehr entgegen. Das ist es auch, was in meinen Augen die Sprache vor bspw. Java auszeichnet. Wenn Du Dir wirklich interessante Konzepte angucken willst, schau Dir am besten einemal folgendes an: 1) Anonyme typen 2) Anonyme Methoden/Lambda-Ausdrücke 3) LINQ List<Produkte> ProduktListe = new List<Produkte>(); ... foreach(var Produkt in Produkte.Where((product)=>product.preis>25)) { ... } [/PHP] [i].Where[/i] ist eine [i]Extensionmethod[/i] und [i]((product)=>product.preis>25)[/i] ist eine anonyme Funktion. ($Eingangsvariable) => {...} <- Funktionskörper, Klammer kann man auch wie oben gesehen weglassen Schöner kann man nicht iterieren ... :] Zitieren
NerdonRails Geschrieben 5. Dezember 2010 Geschrieben 5. Dezember 2010 Funky: "reverse me".Aggregate("", (acc, c) => c + acc); Langweilig: new String(text.Reverse().ToArray()) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.