Zum Inhalt springen

Gewinde

Mitglieder
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

  1. Hallo zusammen, ich habe die Tage etwas an meinem Projekt getüfftelt und dabei sind natürlich mal wieder einige Fragen aufgetreten. Die eine Frage dreht sich um das besagte Arrey oder die besagte Liste. Erstmal wollte ich diesbezüglich nochmal nachfragen ob ich bene98 Antwort richtig verstehe. Da ich mittels Konstruktor ohnehin immer eine neues ( anders) Objekt als das vorherige erzeuge, ist ein Arrey/List zur erstellung vieler verschiedener Character gar nicht nötig? Ich möchte dieses Problem (auch wenn gar nicht erforderlich) gerne weiter verfolgen, einfach um dadurch zu lernen und zu verstehen. Ich habe z.B. ein Arrey erstellt welches zur Probe genau 1 index hat (index 0), in dieses habe ich ein Objekt gespeichert und habe mir zur überprüfung das Objekt mittels for-Schleife ausgeben lassen. PlayerCharacter[] player = new PlayerCharacter[1]; player[0] = new PlayerCharacter(); PlayerCharacter population = new PlayerCharacter(); // einzelne Methodenaufrufe.... for(int i = 0; i < player.Length; i++) { Console.WriteLine(player[i]); } Das Ergebnis ProjektTerra.PlayerCharacter finde ich etwas wenig aussagekräftig und daher bin ich mir jetzt nicht wirklich sicher ob der Versuch auch funktioniert hat. Bedeutet diese Ausgabe das die Speicherung erfolgt ist?
  2. Hallo zusammen, ich habe mir mal einige Gedanken gemacht und erstmal mit der Basisklasse begonnen und etwas mit dem code gespielt. Leider kann ich den gesamten code nicht anhängen, daher mal wieder als schriftliche Ausgabe: namespace TerraProjekt { enum Breed { Human , Psionic , Experimental} enum Gender { neuter , Male , Female} class MainPopulation { private int strength; public int Strength { get { return strength; } set => strength = value; } private int Stamina { get; set; } public MainPopulation (int creatureStrength, int creatureStamina) { Strength = creatureStrength; Stamina = creatureStamina; } public void WertAusgabe() { Console.WriteLine("Deine Werte sind: {0} {1}" , strength , Stamina); } } } Ausführung in der Main Methode: static void Main(string[] args) { MainPopulation player = new MainPopulation(50, 100); player.WertAusgabe(); Console.ReadKey(); } Die enums im Namespace einfach nicht beachten, die sind für später vorgehalten. Als nächstes versuche ich eine Vererbung in die erste Unterklasse und danach dann als weiteres Experiment die Problematik mehrerer Objekte dieser Klasse. Da ich nicht für jeden Quark ein neues Thema aufmachen möchte, werde ich hier alle Schritte mit eventuellen Fragen u.s.w. reinwerfen und daraus mein ProjektThema machen. Ich hoffe das ist i.O. für euch. Ich würde mich darüber freuen wenn ihr einfach mal drüber schaut und mir ggf. verbesserungsvorschläge geben könntet. Getter und Setter habe ich zwei verschiedene Varianten zum üben benutzt, eigentlich sollte ein Automatischer ja ausreichen. Meine Frage hierzu wäre, wenn man eine Variable direkt über den Konstruktor anspricht (this.strength = creatureStrength). Kann dann der Getter und Setter gänzlich weggelassen werden, da die Zuweisung ja über das Schlüsselwort this erfolgt?
  3. Hallo zusammen, da mir in diesem Forum beim letzten mal so gut geholfen wurde, wende ich mich mit einer Frage zur oop nochmal an euch. Mein Testprojekt zur oop soll eine Art Spiel werden, wobei das Spiel ansich nicht erstellt werden soll, sondern nur die Idee der Character Erschaffung. Es soll möglich sein mehrer Character aus verschiedenen Rassen und verschiedenen Klassen zu erstellen. Welche dann (wenn ich mich mit dem Speichern von Datein befasst habe), auch abgespeichert und wieder geladen werden können. In einem Online Rollenspiel ist es zum Beispiel möglich mehrere Character zu erstellen, vielleicht sogar mit verschiedenen Rassen und eventuell sogar diese mit Unterschiedlichen Klassen. Dazu kommen auch noch andere Spieler, welche genauso wie Spieler1 Character aus verschiedenen Rassen mit verscheidenen Klassen erstellen können. namespace Klassenprojekt2 { class Program { static void Main(string[] args) { PlayerCharacter playerCharacter = new PlayerCharacter(); Console.Write("Bitte den Charakternamen eingeben: "); playerCharacter.name = Console.ReadLine(); Console.Write("Bitte das Alter deines Charakters eingeben: "); playerCharacter.age = int.Parse(Console.ReadLine()); Console.WriteLine(playerCharacter.name + " " + playerCharacter.age); Console.ReadKey(); } } class PlayerCharacter { public string name; public int age; } } Nach meinem Verständnis erstelle ich in meinem Beispiel allerdings nie ein Neues Objekt, außer beim ersten mal. Jedes mal, wenn ich ein Objekt playerCharacter erstelle, wird das vorherige playerCharacter Objekt ersetzt. Im Internet habe ich gelesen, dass man viele verschiedene Objekte durch die Erstellung einer <List> oder eben einem Arrey erzeugen kann. Wobei in meinem Fall ein Arrey nicht praktikabel wäre, da es ja begrenzt wäre. Meine Frage besteht jetzt darin, ob es der richtige Gedanke wäre, nun das Objekt folgendermaßen zu erzeugen. class Program { static void Main(string[] args) { List<PlayerCharacter> playerCharacter = new List<PlayerCharacter>(); } } Mein erster Versuch endete darin das mir eine Fehlermeldung Ausgegeben wurde. Leider habe ich diesen Versuch natürlich nicht gespeichert und kann diese jetzt nicht vorzeigen. Freundliche Grüße Gewinde 🙂
  4. Hallo zusammen, meine Frage beruhte auf einem Denkfehler. Wie 121233 hier geschrieben hat, besitzt mein Arrey nur einen string, ich wollte diesen string immer rückwärts ausgeben. Dies macht er natürlich nicht, da das Arrey ja nur das gesamte Arrey rückwärts ausgibt. In meinem fall hätte dies ein rückwärts durchlaufenes charArrey sein müssen. Ich habe gerade eben unabhängig von dem hier zuletzt geschriebenen Post diesen Code geschrieben und dabei ist mir dann auch mein Fehler bewußt geworden. static void Main(string[] args) { string[] testArrey = new string[] { "Mario", "Gunna" }; for(int text = testArrey.Length-1;text >= 0; text--) { Console.WriteLine(testArrey[text]); } Console.ReadKey(); } Ich musste zweimal hinsehen um es zu bemerken. Mein Arrey wird rückwärts durchlaufen und auch ausgegeben (0=Mario,1=Gunna / Ausgabe lautet 1=Gunna, 0=Mario). Also hat es funktioniert. In meiner Idee hätte es annuG und oiraM werden müssen, was ja falsch wäre. Für diese Ausgabe hätte ich die Strings als Char Arreys durchlaufen müssen. In meinem Text ein Stück weiter oben wurde dies ja auch umgesetzt, allerdings wurde die Variable auch aus dem Arrey in eine neue Variable gespeichert (ein Arrey aus Char ist entstanden) und wurde dann rückwärts ausgegeben. Da mir dies recht kompliziert vorkam, dachte ich das es nicht vorgesehen ist ein Arrey direkt rückwärts auszugeben @Whiz-zarD(mein Denkfehler). Die Reversmethode ist mir auch bekannt, ich wollte es allerdings zum besseren Verständnis einfach ohne diese durchführen. Linq kommt erst ca. 300 Seiten Später dran. Ich möchte mich bei euch allen sehr herzlich bedanken, ich bin begeistert von diesem Forum. Lieben Gruß Gewinde
  5. Danke für eure schnellen Antworten. Das mit dem Index (beginnend mit 0) war mir bekannt, allerdings weisen so ziemlich alle Bücher in einigen Bereichen diverse Lücken auf. Z.B. Dachte ich vorher, die -1 hinter dem arrey.Length läßt das Arrey von hinten durchlaufen, da dies nie wirklich erklärt wurde. Das buch was ich habe ist sehr gut, allerdings wird dies dort auch einfach nur als "sollte bekannt sein" hingenommen. Durch ein Javaforum habe ich erfahren, das die -1 durch den Index 0 zustande kommt. Eure Antworten haben mich etwas umdenken lassen und mich anscheinend zum Ziel geführt. Nur für mein Verständnis nochmal die Frage. Ist es in c# nicht vorgesehen das man einfach so ein Stringarrey rückwärts durchläuft, oder liegt es daran, dass ein Stringarrey eigentlich ein Arrey von Arreys ist. Streng genommen ist ein String ja schon ein Arrey von Chars. Hier nochmal mein neuer Code: class Program { static void Main(string[] args) { string[] textArrey = new string[] { "Hallo" }; for(int text = 0; text < textArrey.Length; text++) { string newText = textArrey[text]; for(int i = newText.Length-1; i >= 0; i--) { Console.Write(newText[i]); } } Console.ReadKey(); } }
  6. Hallo zusammen, ich versuche mir c# mit Hilfe von Büchern und Videokursen selber beizubringen. Derzeit befinde ich mich noch bei den Grundlagen der Programmiersprache. Ich versuche eine for-Schleife zu programmieren, welche ein Arrey von Strings durchläuft und den Inhalt dann rückwärts über die Konsole wieder ausgibt. Nach meinem Verständnis, gebe ich der Laufvariable am Anfang der Schleife die Länge des Arreys an, diese soll dann das Arrey von hinten nach vorne durchlaufen und dabei in jedem Umlauf um 1 verringert werden. Danach soll dieses dann über die Variable ausgegeben werden. Leider wird mir immer eine "System.IndexOutOfRangeException: "Index was outside the bounds" ausgegeben. Könnte mir vielleicht jemand behilflich sein und meine Denkfehler aufzeigen? vielen Dank. class Program { static void Main(string[] args) { string[] names = new string[] { "Hannes" }; for(int x = names.Length; x > names.Length -1; x--) { Console.Write(names[x]); } Console.ReadKey(); } }

Fachinformatiker.de, 2021 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung