Array Gestaltung fällt schwer



  • Warum ist die Postleitzahl kein integer?

    Postleitzahl meines alten Wohnorts: 04849 🙂



  • Muss ich nicht einfach Kd irgendwie intitialiseren bevor ich das mache, da Kd im main ja garnicht bekannt ist und wenn ja wie?



  • Firefighter schrieb:

    Warum ist die Postleitzahl kein integer?

    Postleitzahl meines alten Wohnorts: 04849 🙂

    Das macht nichts, das ist nur eine frage der Ausgabe.



  • Benutzer_1234 schrieb:

    Muss ich nicht einfach Kd irgendwie intitialiseren bevor ich das mache, da Kd im main ja garnicht bekannt ist und wenn ja wie?

    Hä?

    Du bekommst von der Methode eine Liste von X Kunden, du brauchst dann nur über die Liste der Kunden laufen.
    Du willst immer mir nur einen Kunden arbeiten, aber es gibt X Kunden.



  • OK. Danke euch beiden, habe es gerade mit der ausführlichen Hilfe von David W geschafft.

    Postleitzahl muss string sein, da United Kingdom PLz's z.B. so aufgebaut ist:

    Duxford
    CB2 4RG

    Das muss für den internationalen kaufmännischen Bereich berücksichtigt werden 😉

    Alles in allem, nochmal vielen Dank für dein Bemühen. Großes Kino!



  • David W schrieb:

    Firefighter schrieb:

    Warum ist die Postleitzahl kein integer?

    Postleitzahl meines alten Wohnorts: 04849 🙂

    Das macht nichts, das ist nur eine frage der Ausgabe.

    Ok du würdest also, alle 4 Stelligen Postleitzahlen dann künstlich mit einer 0 erweitern um damit zu arbeiten?

    Edit: Mit letzten Post hat sich das sowieso erledigt 😃



  • David W schrieb:

    Postleitzahl meines alten Wohnorts: 04849 🙂

    Das macht nichts, das ist nur eine frage der Ausgabe.

    Als Verantwortlicher für die Verwaltung der Verzeichnisse der Post innerhalb der Finanzverwaltung NRW muss ich hier mal widersprechen. In der Praxis kommt es weit häufiger vor, dass man eine Postleitzahl ausgibt oder aufgrund eines Musters vergleicht, als dass man mit ihr rechnet. Moment, genaugenommen kommt letzterer Fall nie vor.


  • Administrator

    LordJaxom schrieb:

    David W schrieb:

    Postleitzahl meines alten Wohnorts: 04849 🙂

    Das macht nichts, das ist nur eine frage der Ausgabe.

    Als Verantwortlicher für die Verwaltung der Verzeichnisse der Post innerhalb der Finanzverwaltung NRW muss ich hier mal widersprechen. In der Praxis kommt es weit häufiger vor, dass man eine Postleitzahl ausgibt oder aufgrund eines Musters vergleicht, als dass man mit ihr rechnet. Moment, genaugenommen kommt letzterer Fall nie vor.

    Zum Teil haben Postleitzahlen Buchstaben drin. In Deutschland sind mir zwei offizielle bei der Feldpost bekannt: 6490a und 6490b. Die sind aber, glaube ich, nicht mehr in Verwendung. War für die EURO Mission im Kongo. In anderen Länder ist es allerdings, wie schon gesagt wurde, ganz normal, dass Buchstaben darin vorkommen.

    Was man zudem noch oft sieht, sind Länderkürzel vor der eigentlichen Postleitzahl. Zum Beispiel CH6060 für eine Postleitzahl in der Schweiz. Das ist aber, glaube ich, nicht standardkonform.

    Es ist völlig verkehrt für etwas einen Zahlentyp zu nehmen, nur weil es eine Zahl ist. Man nimmt nur eine Zahl, wenn man damit rechnen möchte. Sonst ist es ganz eindeutig eine Zeichenkette und mehr nicht.

    Zum Beispiel mit der 0:
    Die 0 hat nichts mit Ausgabe zu tun! Die Postleitzahl lautet 04849. 4849 ist etwas anderes und somit falsch. Das ist wie auch bei den Telefonnummern. Auch dort dürfen führende Nullen nicht einfach entfernt werden. Das hat nichts mit Ausgabe zu tun.
    Auch wenn ich Vergleiche nicht gerne habe, aber das ist wie, wenn man sagen würde, dass du nur W heisst. Das David ist nur Teil der formatierten Ausgabe.

    Grüssli



  • Dravere schrieb:

    Zum Teil haben Postleitzahlen Buchstaben drin. In Deutschland sind mir zwei offizielle bei der Feldpost bekannt: 6490a und 6490b. Die sind aber, glaube ich, nicht mehr in Verwendung. War für die EURO Mission im Kongo. In anderen Länder ist es allerdings, wie schon gesagt wurde, ganz normal, dass Buchstaben darin vorkommen.

    Ich bezog mich jetzt auf deutsche Postleitzahlen, da ausländische Adressen bei uns woanders abgelegt werden. Und die enthalten, laut Anwenderhandbuch Streetcode der Post ausschließlich Ziffern 🙂

    Es ist völlig verkehrt für etwas einen Zahlentyp zu nehmen, nur weil es eine Zahl ist. Man nimmt nur eine Zahl, wenn man damit rechnen möchte. Sonst ist es ganz eindeutig eine Zeichenkette und mehr nicht.

    Danke 🙂



  • Is ja schon gut - ihr habt ja recht 😃


  • Administrator

    David W schrieb:

    Is ja schon gut - ihr habt ja recht 😃

    *verteilt Baseball-Schläger*
    WER WILL NOCHMAL, WER HAT NOCH NICHT? 😃 🤡

    Grüssli



  • Und wie würde das ganze dann aussehen, wenn ich den Dateinamen über einen Konstuktor in die main übergeben möchte, so dass der Dateiname in der main nicht direkt erwähnt wird, sondern dort nur als Variable?

    Ein Konstuktor sieht ja dann von Kundentabelle so aus:

    public class KundenTabelle
        {
            List<Kunde> liste = new List<Kunde>();
    
            public KundenTabelle()
            {
    
            }
    

    In der main rufe ich den Konstuktor dann ja so auf:

    KundenTabelle KdTab = new KundenTabelle();
    

    Aber wie verweise ich jetzt vom Konstruktor auf den Dateinamen um ihn dann in die main zu übergeben?

    Ich habe hier jetzt noch die deutschen Bezeichner drinnen, weil das alles umzumodeln dann zu aufwändig wird^^



  • Ein Konstruktor kann nichts zurückgeben, er stellt jediglich ein neues Objekt. Du könntest in der Klasse eine neue Eigenschaft anlegen, die den Dateinamen enthält.

    public class KundenTabelle
    {
        //...
        public string Dateiname { get; private set; }
        public KundenTabelle()
        {
            this.Dateiname = "datei.txt";
        }
    }
    

    In der Main kannst du dann darauf zugreifen.

    static void Main()
    {
        KundenTabelle tabelle = new KundenTabelle();
        string datei = tabelle.Dateiname;
    }
    

    Der Dateiname kann außerhalb der Klasse aber nicht verändert werden.
    Übrigens musst du nicht überall, wo KundenTabelle steht, per Hand ein neuen Namen ersetzen. Du kannst bei Visual Studio auf den Klassennamen rechtsklicken und "Umbennen" auswählen. Überall in deinem Code wird der Klassennamen, oder auch Methodennamen und sonstiges, durch das Neueingegebene ersetzt.


Anmelden zum Antworten