TechStuden t 20.06.2015, TNTC 2015 HERZLICH WILLKOMMEN C# Einführung Dennis Adrians Microsoft...

Preview:

Citation preview

/TechStudent

20.06.2015, TNTC 2015

HERZLICH WILLKOMMENC# Einführung

Dennis AdriansMicrosoft Student Partner

/TechStudent

20.06.2015, TNTC 2015

AGENDAVorbereitung- C#/.NET Architektur- Visual Studio

Grundlegendes- Common Type System- var & foreach- Vererbung- Generics

/TechStudent

20.06.2015, TNTC 2015

AGENDAFortgeschrittenes- LINQ & Lambda-Ausdrücke- Delegates & Events- Asynchrone

Programmierung

/TechStudent

20.06.2015, TNTC 2015

Vorbereitung

/TechStudent

20.06.2015, TNTC 2015

C#/.NET Architektur

CPU (x86, x64, ARM, …)

Quellcode (*.cs)

.NET-Klassenbibliothek

Common Language Runtime

Intermediate Language (*.exe/.dll)

C#/.NET

kompilieren

ausführen

Quellcode (*.java)

Java-Klassenbibliothek

Java Virtual Machine

Bytecode (*.class)

Java

kompilieren

ausführen

/TechStudent

20.06.2015, TNTC 2015

C#/.NET Architektur

CPU (x86, x64, ARM, …)

Quellcode (*.cs)

.NET-Klassenbibliothek

Common Language Runtime

Intermediate Language (*.exe/.dll)

C#/.NET

kompilieren

ausführen

Quellcode (*.cpp) Bibliotheken

Maschinencode (*.lib/.dll/.exe)

C++

kompilieren

ausführen

/TechStudent

20.06.2015, TNTC 2015

C#/.NET Framework

C#/VB/F#/C++

.NET-Klassenbibliothek

Common Language Runtime

Intermediate Language (*.exe/.dll)

/TechStudent

20.06.2015, TNTC 2015

Visual Studio- … eine mächtige IDE für die .NET-Entwicklung.

- Viele Versionen möglich.

- Download: https://www.visualstudio.com/de-de/downloads/download-visual-studio-vs.aspx

/TechStudent

20.06.2015, TNTC 2015

Grundlegendes

/TechStudent

20.06.2015, TNTC 2015

Common Type System

object

boolint

float …

ValueType structenum

class Referenztypen

Werttypen

Groß-/KleinschreibungBsp.: Double & double sind in C# äquivalent

/TechStudent

20.06.2015, TNTC 2015

var & foreach- Implizite

Typsierung von Variablen mit dem var-Schlüsselwort

- foreach-Schleife über eine Objektauflistung, die IEnumerable implementiert

- Angabe der Auflistung mit in-Schlüsselwort

/TechStudent

20.06.2015, TNTC 2015

Vererbung- Klassen können von genau einer Basisklasse

erben und beliebig viele Interfaces implementieren

- Klassen erben von anderen oder implementieren andere Klassen mit dem :-Operator

- (Auto-) Properties und Methoden können unterschiedliche Zugriffsmodifizierer haben

/TechStudent

20.06.2015, TNTC 2015

Vererbung- Mit dem virtual-Schlüsselwort markierte

Methoden können überschrieben werden

- Methoden, die andere überschreiben müssen mit dem override-Schlüsselwort markiert werden

- Mit dem base-Schlüsselwort bekommt man Zugriff zur Funktionalität der Basisklasse

/TechStudent

20.06.2015, TNTC 2015

Generics- Generische Methoden und Klassen durch

Angabe von Typparametern in <T>

- Ermöglicht verzögerte Angabe von Typen bis zur Instanziierung oder Deklaration

- Es gibt unterschiedliche Generic Collections, alle implementieren IEnumerable<T>

/TechStudent

20.06.2015, TNTC 2015

Fortgeschrittenes

/TechStudent

20.06.2015, TNTC 2015

LINQ- Die Language Integrated Query Features

ermöglichen einfache und effiziente Abfragefunktionen auf unterschiedlichste Datenstrukturen (Arrays, Collections, SQL, ADO.NET, XML, …)

- Auswahl der Elemente und Struktur mit from und in

- Viele Standard-Funktionen werden mitgeliefert: select, where, orderby, select, …

/TechStudent

20.06.2015, TNTC 2015

Lambda-Ausdrücke

- … sind anonyme Funktionen, also lokal definierte Funktionen ohne Deklaration

- Verwendung: (params) => { statements; }

- Besonders nützlich für LINQ-Abfragen und Zuweisung an Delegates

/TechStudent

20.06.2015, TNTC 2015

Delegates- Typ mit einer Referenz auf eine Funktion einer

bestimmten Signatur

- Kann wie eine “Variable” verwendet werden

- Deklaration mit dem delegate-Schlüsselwort und der passenden Funktionssignatur

/TechStudent

20.06.2015, TNTC 2015

Delegates- Vorhandene generische Delegates: Action und Func

Action<T1, …, Tn>(T1 arg1, …, Tn argn) Func<T1, …, Tn, TResult>(T1 arg1, …, Tn argn)

/TechStudent

20.06.2015, TNTC 2015

Events- Ereignisbasierte Programmierung ist eines der

wichtigsten Konzepte der .NET-Entwicklung

- Erzeugung mit dem event-Schlüsselwort

/TechStudent

20.06.2015, TNTC 2015

Events- Mit dem +=-Operator können Ereignisse von

Handlern abonniert werden

- Handler sind Delegates!

- Zur Behandlung werden EventArgs übergeben

/TechStudent

20.06.2015, TNTC 2015

Asynchrone Programmierung

- Asynchrone Methoden müssen mit dem async-Schlüsselwort markiert werden

- Mögliche Rückgabetypen sind void, Task und Task<TResult>

- Mit dem await-Schlüsselwort kann auf das Resultat einer Aufgabe gewartet und entgegengenommen werden

/TechStudent

20.06.2015, TNTC 2015

Nützliche Links- MVA: http://www.microsoftvirtualacademy.com/

Live- & Online-Schulungen

- MSDN: https://msdn.microsoft.com/de-deCommunity, Dokumentation

- C#: https://msdn.microsoft.com/de-de/library/618ayhy6.aspx

C#-Referenz

/TechStudent

20.06.2015, TNTC 2015

Fragen ?

/TechStudent

20.06.2015, TNTC 2015/TechStudent

TNTC 2015

Vielen Dank für‘s Zuhören!

Recommended