Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

C Sharp (C#) Martin Saternus Senior Student Partner Microsoft Deutschland GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "C Sharp (C#) Martin Saternus Senior Student Partner Microsoft Deutschland GmbH"—  Präsentation transkript:

1 C Sharp (C#) Martin Saternus Senior Student Partner Microsoft Deutschland GmbH

2 Agenda Motivation für eine neue Sprache Konzepte der Sprache Umsetzung des Common Type System Syntax von C# Eigenschaften der Sprache

3 Motivation für eine neue Sprache Komponentenorientierte, auf.NET Plattform zugeschnittene Sprache –Unterstützung von Namespaces –Native Unterstützung von Technologien der Basisklassenbibliothek Attributgetriebene deklarative Programmierung Saubere Definition der Sprache Erweiterung gegenüber bestehenden modernen Programmiersprachen

4 Agenda Motivation für eine neue Sprache Konzepte der Sprache Umsetzung des Common Type System Syntax von C# Eigenschaften der Sprache

5 Code Separation Namespaces –Semantische Separation von Quellcode –Verhinderung von Namenskollisionen Klassen –Container für Quellcode –Organisiert auf dem Heap Structs –Container für Quellcode –Organisiert auf dem Stack Interfaces

6 Vererbung Einfachvererbung von Klassen Implementierung von beliebig vielen Interfaces Implementierung von abstrakten Klassen und Methoden Syntaktische Hervorhebung beim Überschreiben (virtual, override) und Neudefinieren (new) von Methoden sealed –Implementierung von nicht weitervererbbaren Klassen

7 Zugriffsrechte public –Öffentlicher Zugriff protected –Zugriff aus der vererbten Klasse private –Zugriff nur innerhalb der Klasse internal –Zugriff innerhalb einer Kompilierungseinheit internal protected –Zugriff innerhalb einer Kompilierungseinheit oder aus der vererbten Klasse

8 Agenda Motivation für eine neue Sprache Konzepte der Sprache Umsetzung des Common Type System Syntax von C# Eigenschaften der Sprache

9 Einheitliches Typsystem Alle Typen erben von System.Object Implizite Konvertierung eines Typen in ein Objekt ist für jeden Typ möglich Stream MemoryStreamFileStream Hashtabledoubleint object

10 Wert- und Referenztypen Boxing –Allokiert eine Box und kopiert den Wert hinein Unboxing –Prüft den Typ der Box und kopiert Wert heraus int i = 123; object o = i; int j = (int)o; 123 i o System.Int j

11 Simple Typen Integer Type –byte, sbyte (8 bit), short, ushort (16 bit) –int, uint (32 bit), long, ulong (64 bit) IEEE Floating Point –float (precision of 7 digits) –double (precision of 15–16 digits) Exact Numeric Type –decimal (28 significant digits) Character Types –char (single character) –string (rich functionality, by-reference type) Boolean Type –bool

12 Agenda Motivation für eine neue Sprache Konzepte der Sprache Umsetzung des Common Type System Syntax von C# Eigenschaften der Sprache

13 Namespaces Deklaration mit dem Schlüsselwort namespace Referenzierung mit dem Schüsselwort using Keine Bindung an Dateisystem using ; namespace { }

14 Klassen Enthalten –Felder, Properties, Indexer, Methoden, Delegaten, Events Abstrakte Klassen können abstrakte Methoden enthalten Erlauben Einfachvererbung Können von beliebig vielen Interfaces erben Unabhängig vom Dateinamen [Modifizierer] class [: Basisklasse, Interfaces] { }

15 Structs Structs sind limitiert –Eingeschränkte OO Fähigkeiten –Werden geboxt wenn sie zu Collections hinzugefügt werden Nutzen –Interop –Typen wie z.B. komplexe Zahlen –Große Datenfelder [Modifizierer] struct { }

16 Interfaces Interfaces sind Typen, die –keine Implementierung enthalten (alle Methoden sind abstrakt) –nicht instanziiert werden können –öffentliche Elemente besitzen –nur von anderen Interfaces erben können [Modifizierer] interface [: Interfaces] { }

17 Felder Klassenvariablen (in Java Attribute) werden in C# als Felder oder eng. Fields bezeichnet Felder müssen im Gegensatz zu lokalen Variablen keinen Wert zugewiesen bekommen Konstante Felder –const – Wert wird zur Kompilierungszeit festgelegt –readonly – Wert wird im Konstruktor festgelegt [Modifizierer] [const, readonly] ; public readonly string Name;

18 Properties Komposition aus Feldern und Methoden Schlüsselwort value enthält Wert bei Zuweisung Nutzen bei –Schreib- oder lesegeschützten Feldern –Validierungen bei Zuweisungen –Berechnungen von Werten [Modifizierer] { get {return ; } set { = value; } }

19 Indexer Properties für Felder und Collections Basierend auf der Property-Idee Konsistenter Weg zur Container-Erstellung [Modifizierer] this[ ] { get {return ; } set { = value; } }

20 Methoden Methoden können überladen werden, müssen aber verschiedene Signaturen besitzen Überschreiben –Deklaration als virtual in der Basisklasse –Deklaration als override in der abgeleiteten Klasse Neudefinition mit Schlüssenwort new Variable Parameterlisten können mit dem Schlüsselwort params erzeugt werden [Modifizierer] ([, …]) { }

21 Delegates und Events Delegates –Ähnlich zu Funktionspointern in C und C++ –Stark typisiert Events –Werden über einen Eventhandler konsumiert [Modifizierer] delegate ([, …]); [Modifizierer] event ;. += new (

22 Ausdrücke if (

23 Agenda Motivation für eine neue Sprache Konzepte der Sprache Umsetzung des Common Type System Syntax von C# Eigenschaften der Sprache

24 Fehlerbehandlung Fehlerbehandlung durch Ausnahmen Ausnahmen werden von System.Exception abgeleitet Abarbeitung von der speziellsten zur allgemeinsten Ausnahme try { } catch ([ Variable]) { } [finally { }]

25 Attribute Strukturierte Möglichkeit, Metadaten an Quellcode zu heften Auswertung zur Laufzeit über Reflections Attribute sind Klassen –Einheitliche Vorgehensweise erleichtert die Definition eigener Attribute –Attribute können an Typen und Member angehängt werden C# Syntax für Attribute –Attribute werden einem Subjekt mit eckigen Klammern vorangestellt

26 Operatoren überladen Operatoren, die überladen werden können –Arithmetische –Relationale –Logische Operatoren, die nicht überladen werden können –Spezielle Operatoren sizeof new is typeof

27 Überlauf-Überprüfung Integer Arithmetiken –C, C++ Überlauf checked vs. unchecked –Standardmäßig unchecked, mit Ausnahme von Konstanten –Änderung durch Compileranweisung /checked int i = checked (x * y); checked { int i = x * y; }

28 Arbeiten mit Pointern Schlüsselwort ref, um Ein- und Ausgabe- Parameter zu übergeben Schlüsselwort out, um Ausgabe-Parameter zu übergeben Schlüsselwörter ref/out müssen in Methoden- und Aufrufsignaturen angegeben werden static void Swap(ref int a, ref int b) {...} static void Main() { int x = 1, y = 2; Swap(ref x, ref y); }

29 Fragen ??? Weiter gehts am Ask The Expert Stand!


Herunterladen ppt "C Sharp (C#) Martin Saternus Senior Student Partner Microsoft Deutschland GmbH"

Ähnliche Präsentationen


Google-Anzeigen