Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundlagen der OO-Programmierung in C#

Ähnliche Präsentationen


Präsentation zum Thema: "Grundlagen der OO-Programmierung in C#"—  Präsentation transkript:

1 Grundlagen der OO-Programmierung in C#
Technische Grundlagen Dr. Beatrice Amrhein

2 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

3 Visual Studio

4 Übersicht der Funktionalität
Visual Studio … ist eine integrierte Entwicklungsumgebung (IDE) … stellt für die verschiedenen Informationsarten eines Projekts verschiedene Editoren und Assistenten zur Verfügung Code-Editor Ressourcen-Editoren XAML Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

5 Der Codeeditor und die IntelliSense
Der Codeeditor unterstützt das Arbeiten während der Text-Eingabe mit der IntelliSense Die IntelliSense arbeitet nach dem Prinzip der Volltextsuche und zeigt dabei jeweils folgende Details an: Signatur der Methode oder des Typs eine Kurzhilfe (Tooltip, nur wenn XML Hilfedateien verfügbar sind) allfällige Überladungen der gewählten Methode Parameter und Erklärungen dazu Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

6 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Anwendungen starten Anwendungen werden direkt in Visual Studio (oder durch Doppelklick auf das .exe) gestartet In Visual Studio Menu-Punkt Debug -> Start Debugging In der Toolbar Start Debug bedeutet, dass das Setzen von Breakpoints möglich ist. Release bedeutet, keine Debugger Unterstützung. Der Code ist optimiert. (vgl. Projekt-Konfiguration). Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

7 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Anwendungen debuggen Der Debugger erlaubt das Unterbrechen der Programm-Ausführung. Der Haltepunkt wird definiert durch Setzen eines Breakpoints (rechte Maustaste) Ist der Programmfluss angehalten, wird der aktuelle Ausführungspunkt im Quellcode angezeigt Informationen Lokale Daten der aktuellen Methode Daten der aktuellen Zeile und der Zeile davor Manuell definiert Daten, die dargestellt werden sollen Aufrufliste(call-stack) Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

8 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Datentypen Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

9 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Warum Typen? Gegeben sei der folgende Speicherinhalt: Was ist dessen Bedeutung? Als int Typ  Als float Typ  E-07 Als char Typ  "S & A 2" (irgend ein String, abhängig von Codierung) Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

10 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Variablen Eine Variable steht für eine Adresse im Speicher (einen Speicherplatz). Die Grösse des Speicherplatzes für diese Variable hängt vom Typ der Variable ab. Über den Bezeichner/Namen der Variable kann das Programm (später) auf den darin gespeicherten Wert zugreifen. Lokale Variablen werden innerhalb einer Methode definiert, der zugehörige Speicherplatz wird nach dem Ablauf der Methode wieder freigegeben (der Wert gelöscht). Klassen-Variablen existieren genau so lange wie die Klasse zu welcher sie gehören. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

11 Variablen-Deklaration und Initialisierung
Die Deklaration erfolgt über die Syntax Typ Name; Beispiele int a; string b; float c; Deklaration mehrerer Variablen int a1, a2, a3; string b1, b2; Initialisierung (Wert-Belegung) Bei der Deklaration int a = 17; // Deklaration mit Initialisierung string b = "Das ist ein Text"; float c = F; Oder zu einem späteren Zeitpunkt int a1, a2; // Deklaration a1 = 17; // Initialisierung danach a2 = 243; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

12 Datentypen Grundstruktur
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

13 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Ganzzahl-Typen Typ Minimum Maximum Grösse Vorzeichen byte 255 8 Bit Nein sbyte -128 127 Ja short 32.767 16 Bit int 32 Bit long 64 Bit Darstellung eines sbyte Werts: 17 vz Darstellung eines short Werts: 385 vz Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

14 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Gleitkomma-Typen Typ Bereich Nachkommastellen (Dezimal-Stellen) Grösse Verwendung float ± 1.5e-38 bis ± 3.4e38 32 Bit float x = 1.234F; double ± 5.0e-308 bis ± 1.7e308 15-16 64 Bit double y = 1.234; double z = 3D; decimal ±1.0 × bis ±7.9 × 1028 bis Bit decimal d = 9.1m IEEE Darstellung für float (32 Bit) Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

15 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Typ-Umwandlung Gegeben sei die folgende Zahl als int Typ  Umwandlung/Umrechnung in float ? Eventuell ist die Zahl nicht exakt darstellbar als Zweierpotenz multipliziert mit der Mantisse  Approximation. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

16 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Typ-Umwandlung Gegeben sei die folgende Zahl als int Typ  Beim Umwandeln in eine float Zahl geht Präzision verloren: Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

17 Weitere vordefinierte Typen
Grösse Werttyp Beschreibung object - nein Referenz auf ein Objekt string Referenz auf einen String (Text-Zeichen) bool 8 Bit ja Logischer Wert true oder false char 16 Bit Unicodezeichen Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

18 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Die Speicherverwaltung Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

19 Die Speicherverwaltung: Stack und Heap
Alle Daten werden im Speicher gehalten. Dieser ist aufgeteilt in den Stack (Stapel) und den Heap (Halde). Stack Heap

20 Die Speicherverwaltung: Stack
Der Stack wird durch Code Manager verwaltet. Auf dem Stack werden die Adressen der Funktionseintritte (Methodenaufrufe) und alle Daten verwaltet, deren Typen eine feste Grösse aufweisen (Basistypen wie int, float, double, … ). Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

21 Die Speicherverwaltung: Heap
Der Heap beinhaltet alle restlichen Daten (deren Typen keine feste Grösse aufweisen, wie z.B. Zeichenketten (Strings) oder Objekte (Instanzen von Klassen). Die Daten auf dem Heap werden aus dem Stack referenziert. Referenzen aus dem Stack Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

22 Werttypen   Referenztypen
Werttypen Werttypen (engl. value type) sind Typen, die im Typsystem eine feste Länge (Anzahl Bytes) aufweisen. Der Speicherort von Werttypen ist der Stack. Referenztypen Referenztypen (Verweistyp, Objekttyp, engl. reference type) sind Typen, die im Typsystem keine feste Größe aufweisen. Der Speicherort von Referenztypen ist der Heap. Für das Anlegen von Objekten muss die Laufzeitumgebung eine Speicheranforderung an die Heap-Verwaltung absetzen. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

23 Zuweisung von Wert- oder Referenztypen
static void Main(string[] args) { Console.WriteLine("Wert-Typ --> Integer"); int a = 5; int b = a; // Zuweisung von Wert Console.WriteLine("a={0}, b={1}", a, b); // Werte von a und b ausgeben a = 7; // Wert von a ändern Console.WriteLine("a={0}, b={1}", a, b); // Wert von a und b sind verschieden Console.WriteLine("Referenz-Typ --> Array"); double[] s = { 12, 2.2 }; double[] t = s; // Zuweisung von Referenz Console.WriteLine("s={0}, t={1}", s[0], t[0]); s[0] = 17; // Element des Arrays ändern auf den Wert 17 Console.WriteLine("s={0}, t={1}", s[0], t[0]); // s und t sind gleich Console.ReadLine(); } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

24 Das Speicherbild Die int Variable b ist eine echte Kopie. Änderungen auf dem Original berühren die Kopie b nicht. Die Kopie t zeigt auf das gleiche Feld wie s (ist keine «echte» Kopie). Beim Ändern von Werten, welche auf dem Heap liegen, werden auch die Inhalte der Kopien ebenfalls verändert. Im Code ist der Unterschied nicht einfach zu erkennen.

25 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Methoden in C# Eigene statische Methoden schreiben und aufrufen Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

26 Definition Eine Methode ist ein Codeblock, der eine Reihe von Anweisungen enthält. Die Anweisungen einer Methode stehen in zwei geschweiften Klammern "{" und "}": Name der Methode Parameter-Werte (Typ und Name) Typ des Resultat-Werts Methoden-Kopf mit der Signatur Reihe von Anweisungen in geschweiften Klammern Methoden-Inhalt Resultat-Rückgabe

27 Die Main Methode Die Main-Methode ist der Einstiegspunkt jeder C#-Anwendung. Sie wird beim Starten des Programms von der Common Language Runtime (CLR) automatisch aufgerufen. Die Main Methode Weitere Methoden

28 Methoden-Aufruf Die Anweisungen einer Methode werden ausgeführt, sobald das Programm die Methode aufruft und die erforderlichen Methoden-Argumente (als Parameter) übergibt Zwei Methoden-Aufrufe mit je drei Parametern Methoden-Aufruf mit zwei Parametern

29 Argumente   Parameter
Beim Aufrufen einer Methode müssen die richtige Anzahl Argumente mit dem richtigen Typ (Erfüllen der Signatur) angegeben werden, sonst gibt es einen Compiler-Fehler. Die Argumente werden beim Methoden-Aufruf in der angegebenen Reihenfolge als Parameter in die Methode eingesetzt. Die Namen der Parameter dienen für die Definition der Methode. Sie werden benutzt um zu erklären, was mit den übergebenen Werten/Argumenten berechnet werden soll.

30 Methoden mit verschiedenen Parameter-Typen
Beispiel: Signatur ist erfüllt  korrekter Methoden-Aufruf Die Typen der Argumente müssen den Parameter-Typen (wie in der Methoden-Definition angegeben) entsprechen.

31 Methoden mit verschiedenen Parameter-Typen
Beispiel: Signatur ist nicht erfüllt An der zweiten Stelle erwartet die Methode PersonenErfassen einen int-Wert, darum zeigt Visual Studio einen Fehler an.

32 Methoden mit verschiedenen Parameter-Typen
Beim Aufrufen einer Methode müssen die richtige Anzahl Argumente mit dem richtigen Typ angegeben werden, sonst gibt es einen Compiler-Fehler. Die Reihenfolge der Aufruf-Argumente muss stimmen und den Parameter-Typen in der Definition der Methode entsprechen.

33 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Methoden in C# Speicherbild Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

34 Speicherbild: Ein Wert-Parameter
Stack Methoden-Aufruf Beim Aufruf der Methode (Square) wird der Wert in der Klammer ( 8 ) an die aufgerufene Methode als Parameter übergeben (kopiert).

35 Speicherbild: Zwei Wert-Parameter
Stack Methoden-Aufruf Beim Aufruf der Methode (Multiply) werden die Werte in der Klammer (2, 20) als Parameter übergeben (kopiert).

36 Speicherbild: Kontext
Stack Methoden-Aufruf Die Werte werden auch kopiert wenn die Namen gleich sind. Die Parameter zahl1 und zahl2 sind für den Kontext von Multiply neu.

37 Methoden mit Referenz-Typen als Parameter
Parameter, welche Referenz-Typen sind, werden nicht «echt» kopiert, sie erhalten bloss einen Verweis (Referenz) auf den Heap.

38 Referenz-Typen-Parameter
Heap Stack

39 Speicherbild: Array «auspacken»
Methoden-Aufruf Beim Aufruf der Methode (Multiply1) werden die einzelnen Array Werte in der Klammer (1, 2 und 3) in den Bereich der aufgerufenen Methode kopiert.

40 Speicherbild: Array als Parameter übergeben
Methoden-Aufruf Beim Aufruf der Methode (Multiply2) wird der Wert in der Klammer (die Adresse, bzw. die Referenz von a) an die aufgerufene Methode als Parameter übergeben.


Herunterladen ppt "Grundlagen der OO-Programmierung in C#"

Ähnliche Präsentationen


Google-Anzeigen