Entwickler-Ecke
Basistechnologien - Zahl aus drei anderen Zahlen erstellen
Henri - Do 05.01.17 11:48
Titel: Zahl aus drei anderen Zahlen erstellen
hallo leute,
ich bin Anfäger in C#, und möchte ich eine Klasse basteln, die mir Nummer generierer werden
Meinen Code sieht mehr nach Java aus, es geht darum meine Kenntnisse in java sind besser als C#
Ich habe mich schon seit paar Tage mit C# syntax gequält , leider schaffe ich nicht immer nur Fehler.
80 ist ein Kennzahl
16 ist Zweistellige Jahreszahl
200 ist die Startnummer
die generieren Nummer sollte so aussehen
8016200,8016201, 8016202,...
habe ich was versucht, leider klappt es nicht so, vielleicht kann jemandem hier mir helfen?
Vielen Dank in Voraus
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| public class NumberGenerator {
private final string kennzahl = "80"; private string jahreszahl; private int startNnr = 200; private string nummer; private ArrayList<string> nummernArray = new ArrayList<string>();
public NumberGenerator() { LocalDateTime ldt1 = LocalDateTime.now(); string year = string.valueOf(ldt1.getYear());
jahreszahl = string.valueOf(year.charAt(2)) + string.valueOf(year.charAt(3)); }
public string addNummer() { nummer = kennzahl + jahreszahl + startNnr ; nummernArray.add(nummer); startNnr ++; }
} |
Moderiert von Th69: Topic aus C# - Die Sprache verschoben am Do 05.01.2017 um 11:06
Moderiert von Christian S.: Code- durch C#-Tags ersetzt
Jumpy - Do 05.01.17 11:55
Also irgendwie fehlt da eine Angabe wie viele Nummern erzeugt werden sollen und dann eine Schleife von 200 bis 200+AnzahlZuErzeugendeNummern. Damit würde ich erst mal weiter machen.
Ralf Jansen - Do 05.01.17 12:58
Dann zeig uns auch denn Code den du da compilierst und nicht irgendeinen anderen Java Code der das gleiche Problem löst.
Zitat: |
Meinen Code sieht mehr nach Java aus, es geht darum meine Kenntnisse in java sind besser als C# |
Wenn dein Ansinnen ist C# zu lernen ist dein vorgehen denkbar ungeeignet. Du versuchst Code zu übersetzen und ~lernst~ dabei wie man Java artigen Code in C# schreibt aber nicht wie man richtig mit C# programmiert. Wenn du einfach was funktionierendes willst ohne es zu verstehen halbwegs ok. Zum lernen ist das Mist. Dein Problem ist so einfach zu beschreiben und so begrenzt das du denn Java wegwerfen solltest und von Grund auf das Problem mit C# lösen solltest. Auch da sind es dann nur eine handvoll Zeilen. So hat das dann auch einen gewissen Lerneffekt anstatt nur Blind das Problem zu lösen.
Henri - Do 05.01.17 13:00
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| using System; using System.Collections.Generic; using System.Globalization;
public class NumberGenerator {
private const string kennzahl = "80"; private string jahreszahl; private int startNnr = 200; private string nummer; private List<string[]> nummernArray = new List<string[]>();
public NumberGenerator() { DateTime ldt1 = DateTime.Now; string year = ToString(ldt1.GetYear());
jahreszahl = ToString(year[2]) + ToString(year[3]); }
public string addNummer() { nummer = kennzahl + jahreszahl + startNnr ; nummernArray.add(nummer); startNnr ++; }
} |
Moderiert von Th69: Vollzitat entfernt.
Moderiert von Th69: Code- durch C#-Tags ersetzt
Ralf Jansen - Do 05.01.17 14:34
Wenn du das kompilierst wirst du Fehlermeldungen erhalten die du einfach abarbeiten solltest. Die sind in diesem Fall so eindeutig das ich bei den Anfangsproblemen hier wenig Lust habe da gezielt zu helfen.
Zum Beispiel wird der Compiler über den Aufruf von GetYear fallen und dir sagen das es eine solche Methode bei einem DateTime nicht gibt. Das Problem ist jetzt nichts geheimnisvolles sondern man muß mur das tun was man immer tun muß. Man schlägt DateTime in der Doku nach uns schaut wie man das Jahr da raus bekommt. Diese Aufgabe(n) müssen wir dir nicht abnehmen.
Das es schwer ist an Hilfe zu kommen wenn man Code auf irgendeiner Webseite ausprobiert anstatt eine (kostenlose!) Entwicklungsumgebung zu benutzten weil man da nicht einfach F1 klicken kann ist dann auch eher ein Problem wo wir nicht als Dokumentatons/Hilfesystemersatz weiterhelfen müssen. Jeder hier hat nur Lust zu helfen wenn man beim gegenüber ein Mindestmaß an Eigenintiative feststellen kann. Dieses Gefühl geht mir gerade bei dem was ich hier sehe ab.
Henri - Fr 06.01.17 11:36
Hallo,
habe ich meinen Code verbessern es sieht nun so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| using System; using System.Collections.Generic; using System.Globalization;
public class NumberGenerator {
private const string kennzahl = "80"; private string jahreszahl; private int startNnr = 200; private string nummer; private List<string> nummernArray = new List<string>();
public NumberGenerator() { string ldt = DateTime.Now.ToString(); DateTime datevalue = (Convert.ToDateTime(ldt.ToString()));
string year = datevalue.Year.ToString(); string myString1 = year[2].ToString(); string myString2 = year[3].ToString();
jahreszahl = myString1 + myString2; }
public string addNummer() { nummer = kennzahl + jahreszahl + startNnr ; nummernArray.Add(nummer); startNnr ++; } } |
Fehlermeldung bezüglich den Rügabewert
erfahrener Neuling - Fr 06.01.17 12:04
Sieh dir an, was in der Fehlermeldung steht.
Rückgabewerte findest du üblicherweise bei Methoden. Da du nur eine (richtige) Methode hast, schau dir die nochmal genau an (Ist diesmal auch das gleiche wie in Java).
Grüße
Julian
PS:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| string ldt = DateTime.Now.ToString(); DateTime datevalue = (Convert.ToDateTime(ldt.ToString()));
string year = datevalue.Year.ToString();
string jahreszahl = DateTime.Now.Year.ToString().Substring(2); |
Ralf Jansen - Fr 06.01.17 13:24
Jetzt fehlt zumindest nicht mehr viel damit es kompiliert.
Frag dich warum deine AddNumber Methode laut Signatur einen string zurückgeben will deine Methodenimplementierung aber nichts dergleichen tut. Dein Java Code hatte bereits das gleiche Problem.
Ich weiß leider nicht was du genau vor hast, also welche der beiden Lösungsmethoden a.) die Signatur ändern so das die Methode auch behauptet das sie keinen Wert zurückliefert oder b.) die Implementierung ändern so das wie was zurückliefert.
Delete - Fr 06.01.17 14:10
- Nachträglich durch die Entwickler-Ecke gelöscht -
Ralf Jansen - Fr 06.01.17 14:25
Zitat: |
Es kann gut sein, dass er nach seiner Ausdrucksweise, kein Einheimischer ist, wohl ein Nachbar aus dem Westen, und sich schwer damit tun wird, wenn ihr fachsimpelt.
Wäre gut, wenn sich einer dazu entschließen würde, es auf den Punnkt zu bringen. ;) |
Öhm, zumindest bei mir ist da nicht der Grund das ich so helfe wie ich helfe. Ich möchte einfach das er sein Problem mit unserer Hilfe löst und nicht wir für ihn.
Ich möchte es nicht einfach auf den Punkt bringen und sagen/zeigen "so gehts".
Das versuche ich eigentlich grundsätzlich immer. Dachte auch das wäre weitestgehend Konsens im Forum.
lapadula - Fr 06.01.17 16:33
Ich bin auch Anfänger und hab aus langeweile mich eben an der Aufgabe versucht.
Habe das ganze als eine einfache WindowsApplication mit einem Button erstellt, der diese 2 Methoden aufruft, in die List hinzufügt und ausgibt.
Ich hoffe ich habe die Aufgabe richtig verstanden.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
namespace WindowsApplication4 { public partial class Form1 : Form { private const string kennzahl = "80"; private string jahreszahl; private int startNnr = 200; private string nummer; private List<string> nummernArray = new List<string>();
public Form1() { InitializeComponent(); }
public void NumberGenerator() { string ldt = DateTime.Now.Year.ToString(); jahreszahl = ldt.Substring(2); }
public void addNummer() { nummer = kennzahl + jahreszahl + startNnr.ToString(); nummernArray.Add(nummer); startNnr++; }
private void button1_Click(object sender, EventArgs e) { NumberGenerator(); addNummer(); nummernArray.Add(nummer); MessageBox.Show(nummer); } } } |
Delete - Fr 06.01.17 20:09
- Nachträglich durch die Entwickler-Ecke gelöscht -
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!