Autor Beitrag
Henri
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 05.01.17 10:48 
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

ausblenden 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 user profile iconTh69: Topic aus C# - Die Sprache verschoben am Do 05.01.2017 um 11:06
Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


Zuletzt bearbeitet von Henri am Fr 06.01.17 08:08, insgesamt 1-mal bearbeitet
Jumpy
Hält's aus hier
Beiträge: 19
Erhaltene Danke: 4



BeitragVerfasst: Do 05.01.17 10: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.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 3321
Erhaltene Danke: 610

Win7
C++, C# (VS 2010/12/13/15)
BeitragVerfasst: Do 05.01.17 11:06 
Hallo und :welcome:

ich hatte die letzten Tage schon deinen Cross-Post myCSharp.de - Zahl aus drei anderen Zahlen erstellen mitverfolgt (Taipi88 hat dir schon konkrete Vorschläge zur Umsetzung gemacht).

Solange du nicht ersteinmal kompilierfähigen C#-Code erzeugst, wird man dir kaum helfen (können).
Henri Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 05.01.17 11:23 
Hier compiliere ich es rextester.com/

Moderiert von user profile iconTh69: Vollzitat entfernt.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3941
Erhaltene Danke: 728


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 05.01.17 11: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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 05.01.17 12:00 
ausblenden 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 user profile iconTh69: Vollzitat entfernt.
Moderiert von user profile iconTh69: Code- durch C#-Tags ersetzt


Zuletzt bearbeitet von Henri am Fr 06.01.17 08:07, insgesamt 1-mal bearbeitet
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3941
Erhaltene Danke: 728


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 05.01.17 13: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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 06.01.17 10:36 
Hallo,

habe ich meinen Code verbessern es sieht nun so aus:

ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 197
Erhaltene Danke: 9

Win 7, Win 10
C# (VS 2015 Community), Java, SQL
BeitragVerfasst: Fr 06.01.17 11: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:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
//doppelt-gemoppelt
string ldt = DateTime.Now.ToString();
DateTime datevalue = (Convert.ToDateTime(ldt.ToString()));

string year = datevalue.Year.ToString();


// DateTime.Now ist ja schon ein DateTime mit einem Year-Wert
string jahreszahl = DateTime.Now.Year.ToString().Substring(2);
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3941
Erhaltene Danke: 728


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 06.01.17 12: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.
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 952
Erhaltene Danke: 126

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE
BeitragVerfasst: Fr 06.01.17 13:10 
Wie er schon sagte, er möchte eine Klasse erstellen, die ihm eine Zahl generiert, bestehend aus einer Konstante mit dem Wert 80, einer Variable, mit dem Startwert 200, und der 2-stelligen Jahreszahl. Die Liste/das Array deutet wohl darauf, dass es mehrere Werte sein sollen.

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. ;)

_________________
„Nicht für das Leben, sondern für die Schule lernen wir.“ „Kürze die lange Rede, damit sie nicht verdächtig wirke!“
(Lucius Annaeus Seneca : 1 - 65 n. Chr)
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3941
Erhaltene Danke: 728


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 06.01.17 13: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.01.17 15: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.

ausblenden volle Höhe 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);
        }
    } 
}
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 952
Erhaltene Danke: 126

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE
BeitragVerfasst: Fr 06.01.17 19:09 
@ Ralf Jansen

Ich teile deine Ansicht, und "auf den Punkt bringen" soll nicht heißen, dass eine fertige Lösung vorliegen soll.
Es war gut ihn auf "Fehlermeldungen" hinzuweisen, jedoch wird ihn das allein nicht weiterbringen.
Hinweise auf das eigentliche Hauptmerkmal haben noch gefehlt.
Wenn er mehrere Zahlen/Werte erzeugen und in einer List<> / Array aufnehmen möchte, dann sollte er sich erstmal darüber informieren, wie man sowas macht.

Nachzulesen:
- Schleifen / Loops
- List<>
- Array

_________________
„Nicht für das Leben, sondern für die Schule lernen wir.“ „Kürze die lange Rede, damit sie nicht verdächtig wirke!“
(Lucius Annaeus Seneca : 1 - 65 n. Chr)