Aller Anfang ist schwer.....



  • Hallo,

    habe bisher in "C" programmiert und möchte nun mit C# eitermachen. Mir fällt es irgendwie nicht so leicht mit dem Objektorientierten Gedanken.

    Wenn ich also ein Formular habe, wird hier der Code für die einzelnen Elemente reingepackt.

    Wo kämen aber z.B. übergeordnete Funktionen hin? Hat jemand einen Link zu einer guten Seite, wo der Aufbau eines Programms mal deutlich gemacht wird, bekomme das irgendwie nicht auf die Reihe.

    In "C" würde ich meine übergeordnetetn Funktionen in ein eigenes *.c und *.h FIle packen, die Aufrufe dann aus meinen spezifischen Modulen, kein Problem, aber die Kurve bei C# bekomme ich nicht.

    Wäre nett, wenn jemad eine kurze Erklären hat. Hoffe ich habe mich einigermasse verständlich asgedrückt.

    Vielen Dank



  • Hallo leyden,

    auch in C# erstellst du am besten dafür eine eigene Datei (Klasse).
    Generell gilt es, GUI und Logik nicht zu vermischen, d.h. getrennte Klassen dafür zu entwickeln.

    Mein Artikel Kommunikation von 2 Forms zeigt auch wie man Logik-Klassen erzeugt und diese von einer Form aus benutzt ("2. Hierarchische Projektstruktur"). Der eigentliche Artikel zeigt dann, wie man Daten zwischen verschiedenen Forms und/oder Klassen austauscht.
    Am besten, du schaust dir auch mal das Beispielprogramm "PersonManagement" (als Link ganz unten auf meiner Seite) an. Dieses kannst du dann als Vorlage für deine C#-Projekte (WinForms) nutzen.

    Für WinForms kann ich dir auch das OpenBook Visual C# 2008 empfehlen.



  • Innerhalb einer Form (Klasse) kannst du wie gewohnt C-Funktionen einsetzen. Einfach schreiben und benutzen. Gesonderte Funktionsdeklarationen sind nicht erforderlich, die Aufrufe überwacht der Compiler. Wenn du nun allgemeine Funktionen für mehrere Forms haben möchtest, packst du die am besten in eine statische Klasse (braucht keinen Konstruktor und kein new, nur den Klassennamen).

    Von C kommend wirst du um ein Einführungsbuch wohl nicht herumkommen. Buchhinweise findest du hier in der Rubrik [Bücher]. Empfehlen kann ich die Bücher "Programmieren lernen mit Visual C# 2010" von Klaus Fahnenstich und Rainer G. Haselier und "Einstieg in Visual C# 2012" von Thomas Theis.



  • GUIs sind kein guter Einstieg in die OO-Programmierung. Ich würde Dir nahe legen, erstmal für einige Zeit Konsolen-Anwendungen zu schreiben.

    "Wo kämen aber z.B. übergeordnete Funktionen hin?"

    Freie Funktionen gibt es in C# nicht, jede Methode muss in einer Klasse sein.
    Für Utility-Methoden kann man static-Methoden verwenden, aber das stellt nur einen kleinen Teil der Funktionalität dar, die man so einsetzt.
    Ansonsten lagert man jedwede Logik in instanziierbare Klassen aus. Die werden dann entweder direkt bei Bedarf instanziiert, oder eine Methode (oder ein Konstruktor) erhält ein Objekt vom Aufrufer per Parameter.

    Man möchte tendenziell die Kopplung zwischen Objekten so gering wie möglich halten, damit die Logik bei Bedarf einfacher ausgetauscht werden kann. C# bietet dafür insbesondere Interfaces, (abstrakte) Basisklassen und Events.

    Schaue mal in den Thread mit den Buchempfehlungen, das Thema ist zu umfangreich für einen Forenbeitrag.



  • Vielen Dank für eruen schnellen Antworten und für den Link....


Anmelden zum Antworten