Entwickler-Ecke

Sonstiges (.NET) - Anfänger - Und paar Fragen


chenjung - So 03.11.13 03:55
Titel: Anfänger - Und paar Fragen
Hallo ihr lieben,

nachdem das mit der Anmeldung auch geklappt hat, wollte ich mich nochmals beim Admin bedanken! :)

Also, ich bin der Michael, bin 30 Jahre (alt/jung) und habe mir nun zum Ziel gesetzt, C# zu lernen.

VB2010 habe ich mir so bisschen beigebracht, habe da auch einen kleinen Texteditor erstell.

Ich habe allerdings gleich auch eine Frage zu C# :)

Ich arbeite zur Zeit das Buch "Einsteig in Visual C# 2012" von Galileo Computing durch.

Und jetzt frage ich mich, gibt es mehr Wege zu Ziel, also zur Lösung von Aufgaben, bzw. deren Quellcode.

In der einen Aufgabe, sollte ich eine Form erstellen, mit Label, 2 Button und auf dem Label sollte Anschrift, Gehalt und alter ausgegeben werden.

Mein Lösungsweg sah 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:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
namespace Datentypen_übung
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void cmdAnzeige_Click(object sender, EventArgs e)
        {
            /*Ganze Zahlen */
            int It;

            /*Mit Nachkommastellen */
            decimal De;

            /*Name, Nachname */
            string St;
            string St1;
            string St2;

            It = 30;
            De = 1340.70m;
            St = "Michael Mustermann";
            St1 = "Musterstr. 19";
            St2 = "6000 Musterstadt";

            lblAnzeige.Text =
                "Anschrift: " + "\n" + St + "\n" + St1 + "\n" + St2 + "\n" + "\n" +
                "Alter: " + It + "\n" +
                "Gehalt: " + De + "\n";                
        }

        private void cmdclose_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}


Die Musterlösung so:


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:
namespace ÜDatentypen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void cmdAnzeigen_Click(object sender, EventArgs e)
        {
            string nachname, vorname,
                strasse, plz, ort;
            int alter;
            double gehalt;

            nachname = "Clever";
            vorname = "Claus";
            strasse = "Bergstraße 34";
            plz = "09445";
            ort = "Brunnstadt";
            alter = 32;
            gehalt = 2852.55;

            lblA.Text = "Adresse: " + "\n" + vorname +
                " " + nachname + "\n" + strasse +
                "\n" + plz + " " + ort + "\n" +
                "\n" + "Alter: " + alter +
                "\n" + "Gehalt: " + gehalt;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}


Jetzt ist meine Frage, ist mein Weg falsch? Bei beiden erscheint das, was erscheinen soll :)

Moderiert von user profile iconTh69: Quote- durch C#-Tags ersetzt


OlafSt - So 03.11.13 04:02

Nach Rom führen bekanntlich viele Wege.

Wenn also das Ergebnis deines Programms identisch mit der angebotenen Lösung ist, dann ist die Lösung richtig. Es kann nur sein, das der Lösungsweg nicht dem entspricht, was erwartet wird. Das kann ich in diesem Fall nicht so recht erkennen.


chenjung - So 03.11.13 04:06

Danke für die Antwort.

Das Buch geht nicht weiter auf andere Lösungswege ein, ich denke, ganz verkehrt ist mein Weg dann nicht.

Ich muss noch viel Lernen :)


Palladin007 - So 03.11.13 06:21

Im Prinzip sind beide Versionen gleich, der Unterschied ist die Schreibweise und Übersichtlichkeit.


Zuerst einmal solltest du dir eine ganz wichtige Regel einprägen: Vergebe sprechende Namen.
Wenn du eine Variable siehst und anhand des Namens sofort weißt, was drin ist, dann hast du es richtig gemacht. Bedenke aber auch, dass du es erst dann wirklich richtig gemacht hast, wenn dir das auch noch in zwei Monaten gelingt.
Schau dir mal das "Muster-Beispiel" an, dort haben die Variablen Namen, bei denen du gleich weißt, was sie beinhalten.

An sich gibt es noch sehr viele Dinge, die nicht in diesem Buch stehen. Stichwort: Pattern

Auch sind die Beispiele in dem Buch nicht unbedingt gut, aber du bekommst dort auf jeden Fall alles gelehrt, was du brauchst und noch mehr.
Überlege daher lieber, ob die Bespiele wirklich so gut geschrieben sind und bedenke dabei, dass der Code, den du schreibst, in erster Linie leserlich und verständlich sein soll. Es bringt dir nix, wenn du deinen eigenen Code nicht mehr verstehst.
Auch sollte alles wirklich nur eine Aufgabe haben. Eine Methode CreateAdressString sollte wirklich nur den Adress-Text erstellen, mehr nicht. Die dafür benötigten Daten musst du ihr geben, denn wenn diese Methode intern die Daten selber erstellt (So wie im Beispiel), dann sind es wieder mehrere Aufgaben. Single Responsibility Prinzip [http://de.wikipedia.org/wiki/Single-Responsibility-Prinzip]


Palladin007 - So 03.11.13 06:24

Da meine letzte Nachricht bei mir aus irgendeinem Grund nicht angezeigt wird, schreibe ich sie hier noch einmal.
Kann bitte ein freundlicher Moderator die vorherige leere Nachricht löschen und dann hier diesen Zusatz entfernen?






Im Prinzip sind beide Versionen gleich, der Unterschied ist die Schreibweise und Übersichtlichkeit.


Zuerst einmal solltest du dir eine ganz wichtige Regel einprägen: Vergebe sprechende Namen.
Wenn du eine Variable siehst und anhand des Namens sofort weißt, was drin ist, dann hast du es richtig gemacht. Bedenke aber auch, dass du es erst dann wirklich richtig gemacht hast, wenn dir das auch noch in zwei Monaten gelingt.
Schau dir mal das "Muster-Beispiel" an, dort haben die Variablen Namen, bei denen du gleich weißt, was sie beinhalten.

An sich gibt es noch sehr viele Dinge, die nicht in diesem Buch stehen. Stichwort: Pattern

Auch sind die Beispiele in dem Buch nicht unbedingt gut, aber du bekommst dort auf jeden Fall alles gelehrt, was du brauchst und noch mehr.
Überlege daher lieber, ob die Bespiele wirklich so gut geschrieben sind und bedenke dabei, dass der Code, den du schreibst, in erster Linie leserlich und verständlich sein soll. Es bringt dir nix, wenn du deinen eigenen Code nicht mehr verstehst.
Auch sollte alles wirklich nur eine Aufgabe haben. Eine Methode CreateAdressString sollte wirklich nur den Adress-Text erstellen, mehr nicht. Die dafür benötigten Daten musst du ihr geben, denn wenn diese Methode intern die Daten selber erstellt (So wie im Beispiel), dann sind es wieder mehrere Aufgaben. [meta]http://de.wikipedia.org/wiki/Single-Responsibility-Prinzip[/meta]


chenjung - So 03.11.13 06:55

Deine Antworten sind nicht zu sehen? Was ist hier los? ^^


jaenicke - So 03.11.13 09:52

Das liegt an der URL im Meta-Tag statt URL-Tag... Hier die korrekte Nachricht:
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Im Prinzip sind beide Versionen gleich, der Unterschied ist die Schreibweise und Übersichtlichkeit.


Zuerst einmal solltest du dir eine ganz wichtige Regel einprägen: Vergebe sprechende Namen.
Wenn du eine Variable siehst und anhand des Namens sofort weißt, was drin ist, dann hast du es richtig gemacht. Bedenke aber auch, dass du es erst dann wirklich richtig gemacht hast, wenn dir das auch noch in zwei Monaten gelingt.
Schau dir mal das "Muster-Beispiel" an, dort haben die Variablen Namen, bei denen du gleich weißt, was sie beinhalten.

An sich gibt es noch sehr viele Dinge, die nicht in diesem Buch stehen. Stichwort: Pattern

Auch sind die Beispiele in dem Buch nicht unbedingt gut, aber du bekommst dort auf jeden Fall alles gelehrt, was du brauchst und noch mehr.
Überlege daher lieber, ob die Bespiele wirklich so gut geschrieben sind und bedenke dabei, dass der Code, den du schreibst, in erster Linie leserlich und verständlich sein soll. Es bringt dir nix, wenn du deinen eigenen Code nicht mehr verstehst.
Auch sollte alles wirklich nur eine Aufgabe haben. Eine Methode CreateAdressString sollte wirklich nur den Adress-Text erstellen, mehr nicht. Die dafür benötigten Daten musst du ihr geben, denn wenn diese Methode intern die Daten selber erstellt (So wie im Beispiel), dann sind es wieder mehrere Aufgaben. http://de.wikipedia.org/wiki/Single-Responsibility-Prinzip


Palladin007 - So 03.11.13 19:01

Achso -.-

Ich hatte gehofft, dass man so auch einen Link mit geben kann. Als es dann nicht ging, hab ich gedacht, dass das Problem an meinem PC liegt, da ich ein ähnliches Problem schon mal hatte.


chenjung - So 03.11.13 21:29

Vielen lieben Dank an euch beide.

Ich werde mir das merken :)