C Sharp Einfuehrung Teil 1

download C Sharp Einfuehrung Teil 1

of 78

  • date post

    12-Nov-2014
  • Category

    Education

  • view

    308
  • download

    0

Embed Size (px)

description

Folien vom C# Einführungskurs: Grundlagen der Programmierung http://www.draphony.de/veranstaltungen/2013-winter/c-sharp-einfuehrung/

Transcript of C Sharp Einfuehrung Teil 1

  • 1. C# Einfhrung - Grundlagen der Programmierung Do, Hoang Viet (do@mi.fu-berlin.de) Draphony Games (http://www.draphony.de)
  • 2. Grundlagen 04.12.2013 2
  • 3. Grundbegriffe in der Entwicklung Quellcode Entwickler schreiben das Programm in einer Programmiersprache. Dieser Text wird Quellcode genannt. Im Gegensatz zur natrlichen Sprache erfllen Programmiersprache diverse Anforderungen, die eine weitere maschinelle Verarbeitung erst ermglich, u.a. Eindeutigkeit Gegenbeispiel aus Wikipedia: Jeder Mann liebt eine Frau. (Wikipedia Artikel) Compiler Der Quellcode muss mit Hilfe eines Programms in einer maschinenlesbare Sprache bersetzt werden. 04.12.2013 3
  • 4. Demo: HelloWorld 04.12.2013 4
  • 5. Hufig gemachte Fehler C# unterscheidet zwischen Gro- und Kleinschreibung (engl. case-sensible) Console.WriteLine ist nicht das selbe wie console.writeline Abstze wie Leerzeichen, Tabulatoren sind optional In den meisten Fllen, lsst sich der Quellcode auch in einer einzigen Zeile schreiben. (Daran haben spter alle Spa!) Eine Anweisung wird mit einem Semikolon beendet Console.WriteLine(Hello World); int a = 10; Copy & Paste von Folien In Powerpoint werden die Anfhrungsstriche den Lnderspezifischen Normen angepasst. Derartiges in der Programmierung nicht! 04.12.2013 5
  • 6. Grundbegriffe in .net C# Compiler bersetzt Quellcode in CIL Code Common Intermediate Language (CIL, frher MSIL) Zwischensprache, indem der Quellcode bersetzt wird Assembler von .net JIT / Jitter (Just-In-Time compilation) bersetzt den CILCode (zur Laufzeit) in maschinennahem Code Common Language Runtime (CLR) Ausfhrungsumgebung von .net Anwendungen 04.12.2013 6
  • 7. Grundbegriffe in .net Garbage Collector (GC) Verwaltet den Programmspeicher Verhindert Speicherlecks Framework Class Library (FCL) Von .net zur Verfgung gestellte Funktionalitten Auflistung der Klassen (MSDN-Link) Common Language Infrastructure (CLI) Common Type System (CTS) Common Language Specification (CLS) 04.12.2013 7
  • 8. Microsoft Visual Studio Quelldatei (engl. Source File) Datei, in dem der C# Code gespeichert wird. Diese Datei(en) werden vom Compiler bersetzt Projekt (engl. Project) Ein Projekt fasst Quelldateien zusammen Aus einem Projekt erzeugt Visual Studio eine Assembly (*.exe, *.dll o..) Projektmappe (engl. Solution) Eine Projektmappe fasst Projekten zusammen Beispiel: Microsoft Office als Solution; Powerpoint, Word, etc. sind Projekte Entwicklungsumgebung (engl. Integrated Development Enviroment) Integriert Entwicklungstools (Compiler, Editor, Debugger, usw.) zu einer Einheit um den Entwicklungsprozess zu untersttzen 04.12.2013 8
  • 9. Syntax und Semantik Syntax Grammatikalische Regeln einer Programmiersprache Wird vom Compiler forciert, d.h. Compilerfehler wenn Regel verletzt wird Analogie zu natrliche Sprachen: Ein Satz muss immer Subjekt und Prdikat besitzen Semantik Absicht des Entwickler / Kunden, d.h. was soll das Programm machen. Kann nicht berprft werden Tools fr spezielle Bereiche vorhanden. Analogie zu natrliche Sprachen: 04.12.2013 Die Aussage vom Satz 9
  • 10. HelloWorld im Detail 04.12.2013 10
  • 11. Henne Ei Problem 04.12.2013 11
  • 12. Die Klassenmethode Main static void Main(string[] args) { Console.WriteLine(Hello World!); } Einstiegspunkt des Programm. Jedes Programm besitzt nur einen Einstiegspunkt Im Normalfall definiert jedes Programm nur eine Main Methode Beispiele der Veranstaltung definieren mehrere Main Methoden! Details spter im Kapitel Methoden Parameter an das Programm werden in args gespeichert. Die Methode gibt eine ganze Zahl zurck. 04.12.2013 Der Wert 0 indiziert eine fehlerfreie Ausfhrung 12
  • 13. Quellcode Kommentare Lesbarkeit von Quellcode erhhen Kommentare in einem Quellcode werden vom Compiler ignoriert Quellcodekommentierung ist eine fundamentale Fertigkeit Zeilenkommentar: // das ist ein Kommentar Inhalt von // bis Zeilenende wird als Kommentar behandelt Blockkommentar: /* das ist ein Kommentar */ Inhalt von /* bis zum */ wird als Kommentar behandelt (auch bei Zeilenumbrchen!) Dokumentationskommentare Spter im Abschnitt Methoden 04.12.2013 13
  • 14. Konsolenausgabe Console.WriteLine(); Console.Write(); Gltige Werte fr sind: Strings: Unicode Support Gleichungen: Platzhalter: Console.WriteLine(Das ist ein Text); Console.WriteLine(1 + 1); Console.WriteLine(1 addiert mit 2 ergibt {0}, 1 + 2); Alternativmglichkeit im Tutorium Achtung! String mssen in Anfhrungsstrichen geschrieben werden. Ansonsten wird er als Anweisungen interpretiert, was zu einem Compilerfehler fhrt. Vergleiche: 04.12.2013 Console.WriteLine(1 + 1); Console.WriteLine(1 + 1); 14
  • 15. Escape Zeichen Wie knnen Sonderzeichen dargestellt werden? Leerzeichen wie Zeilenumbrche, Tabulatoren Internationale Zeichen wie Mt sut thit cho oder chinesische Schriftzeichen Escape Zeichen Backslash Anfhrungsstriche n t v u Zeilenumbruch Tabulator Vertikale Tabulator Unicode character (in Hexa FFFF). Bspl: Pi (u03a0) and Sigma (u03a3) x ASCII (in Hexa FF) 04.12.2013 15
  • 16. Konsoleneingabe Console.ReadLine(); Blockiert die Programmausfhrung bis zur Benutzereingabe Programm rechnet im Hintergrund nichts nebenbei, sondern wartet auf die Eingabe des Benutzers. Die Blockierung wird erst aufgehoben, wenn der Benutzer die Enter Taste besttigt. Anweisung lsst sich kombinieren: Console.WriteLine(Console.ReadLine()); Was wird bei der folgende Anweisung ausgegeben? Warum? Console.WriteLine(Console.ReadLine()); 04.12.2013 16
  • 17. Klasse Program C# ist eine Objektorientierte Programmiersprache Ein Programm ist ein Objekt, das mit anderen Objekten operiert. Jedes Objekt gehrt zu einer Klasse. Analogie zur Welt: Mensch als Klasse Jeder Mensch ist ein Objekt der Klasse Mensch Bei der Geburt wird die Funktion Main aufgerufen. Diese wird bis zum Tot ausgefhrt. Mehr zu Klassen, Objekte und Methoden spter! 04.12.2013 17
  • 18. Namensrume Motivation Um Namenskonflikte (2 unterschiedliche Bedeutungen mit dem selben Namen) zu vermeiden, gibt es hierarchische Benennungsnormen. Erklrung am Beispiel: System.Console.WriteLine System Funktion ist Teil der FCL (Standardfunktionalitt von .net) Console Alle Funktionen bzgl. der Konsole werden in einer Klasse gruppiert WriteLine eigentliche Funktion Abkrzung using System; danach kann statt System.Console.WriteLine kurz Console.WriteLine geschrieben werden Tutorium: Programm schreiben, ohne using zu benutzen 04.12.2013 18
  • 19. Variablen 04.12.2013 19
  • 20. Variable: Grundlagen Deklaration Reservieren von Speichern fr die Variable datentyp nameDerVariable; Beispiel: string name; Initialisierung Zuweisung eines Anfangswertes fr die Variable. Eine Variable muss vorher deklariert werden bevor es initialisiert werden kann. Allgemeine Syntax: nameDerVariable = wert; Beispiel: name = Alf Verknpfung mglich: Deklaration & Initialisierung Beispiel: string name = alf; Mehrere Variablen deklarieren Beispiel: int a, b, c; Initialisierung von einem, mehrere oder alle mglich Beispiel: int a, b=10, c; 04.12.2013 20
  • 21. Datentypen Zeichenketten Boolescher Datentyp Einzige mgliche Werte sind true oder false Ganzzahlige Datentypen Unterscheidungsmerkmal: Wertebereich und Speicherverbrauch Vertreter: byte, int, long, usw. Fliekommazahlen Unterscheidungsmerkmal: Wertebereich, Speicherverbrauch, Genauigkeit nach dem Komma Vertreter: float, double, decimal, usw. Weiterfhrend: http://msdn.microsoft.com/en-us/library/ms228360%28v=VS.90%29.aspx http://msdn.microsoft.com/en-us/library/ya5y69ds.aspx 04.12.2013 21
  • 22. Ganzzahlige Typen Datentyp Speicherbedarf in Byte Wertebereich sbyte 1 27 27 1 byte 1 0 28 short 2 215 215 1 ushort 2 0 216 int 4 231 231 1 uint 4 0 232 long 8 263 263 1 ulong 8 0 264 char 2 0 216 Weiterfhrend: http://msdn.microsoft.com/en-us/library/exx3b86w.aspx 04.12.2013 22