C# 8.0 - kurz & gut -  Joseph Albahari,  Ben Albahari

C# 8.0 - kurz & gut (eBook)

eBook Download: EPUB
2020 | 6. Auflage
250 Seiten
O'Reilly Verlag
978-3-96010-375-2 (ISBN)
Systemvoraussetzungen
14,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Konkurrenzlos knapp, aber vollständig: Alle Sprachfeatures von C# 8.0

  • Der schnelle Einstieg in C# 8.0 für erfahrene Programmierer*innen
  • Mit den neuen Features von C# 8.0 wie asynchrone Streams und Nullable Reference Types
  • Das handliche Format macht das Buch zum idealen Begleiter für alle, die mit C# programmieren

Ideal für vielbeschäftigte Programmierer*innen, die eine knappe und zugleich verständliche Beschreibung von C# 8.0 und LINQ suchen: C# 8.0 - kurz & gut gibt Ihnen genau das Wissen an die Hand, das Sie benötigen, um schnell effektiv mit C# 8.0 arbeiten zu können.

Wer schon mit Java, C++ oder einer früheren Version von C# vertraut ist, trifft mit C# 8.0 - kurz & gut die optimale Wahl: Kein anderes Buch und keine Online-Ressource bietet so viel Inhalt auf so wenig Raum. Konzentriert auf das Wesentliche und sehr praxisorientiert, behandelt dieses Taschenbuch mehr Themen als viele der großen C#-Kompendien.

Die aktualisierte Ausgabe thematisiert auch die wichtigsten neuen Features der C#-Version 8.0.



Joseph Albahari entwirft Enterprise-Anwendungen auf .NET und auf anderen Plattformen und hat in der Telekommunikation sowie im Gesundheits- und im Bildungswesen gearbeitet. Neben einer Reihe von O'Reilly-Büchern hat er auch LINQPad, das beliebten Query-Tool für LINQ, geschrieben. Ben Albahari ist Mitbegründer von Auditionist, einer Casting-Website für Schauspieler in Großbritannien. Er war fünf Jahre lang Programm-Manager bei Microsoft, wo er an mehreren Projekten arbeitete, darunter am .NET Compact Framework und an ADO.NET. Er ist Mitbegründer von Genamics, einem Tools-Anbieter für C#- und J++-Programmierer, der Software für DNA- und Proteinsequenz-Analysen entwickelt. Bei einer Reihe von O'Reilly-Büchern zu C# war Coautor.

Joseph Albahari entwirft Enterprise-Anwendungen auf .NET und auf anderen Plattformen und hat in der Telekommunikation sowie im Gesundheits- und im Bildungswesen gearbeitet. Neben einer Reihe von O'Reilly-Büchern hat er auch LINQPad, das beliebten Query-Tool für LINQ, geschrieben. Ben Albahari ist Mitbegründer von Auditionist, einer Casting-Website für Schauspieler in Großbritannien. Er war fünf Jahre lang Programm-Manager bei Microsoft, wo er an mehreren Projekten arbeitete, darunter am .NET Compact Framework und an ADO.NET. Er ist Mitbegründer von Genamics, einem Tools-Anbieter für C#- und J++-Programmierer, der Software für DNA- und Proteinsequenz-Analysen entwickelt. Bei einer Reihe von O'Reilly-Büchern zu C# war Coautor.

Null-Operatoren


C# bietet drei Operatoren, die die Arbeit mit Null-Werten vereinfachen: den Null-Verbindungsoperator, den Null-Bedingungsoperator und den Null-Verbindungs-Zuweisungsoperator.

Null-Verbindungsoperator

Der Operator ?? ist der Null-Verbindungsoperator. Er sagt: »Wenn der linke Operand nicht null ist, gib ihn mir – ansonsten gib mir einen anderen Wert.« Hier sehen Sie ein Beispiel:

string s1 = null;

string s2 = s1 ?? "nichts"; // s2 enthält "nichts"

Ist der linksseitige Ausdruck nicht null, wird der rechtsseitige Ausdruck nie ausgewertet. Der Null-Verbindungsoperator funktioniert auch mit nullbaren Typen (siehe »Nullbare (Wert-)Typen« auf Seite 150).

Null-Bedingungsoperator

Der Operator ?. ist der Null-Bedingungsoperator (oder Elvis-Operator), der in C# 6 neu aufgenommen wurde. Er ermöglicht Ihnen, wie mit dem normalen Punktoperator Methoden aufzurufen und Member anzusprechen, jedoch wird mit diesem Operator bei einem linksseitigen Operanden der Ausdruck zu null, es wird also keine NullReferenceException geworfen:

System.Text.StringBuilder sb = null;

string s = sb?.ToString(); // kein Fehler, s ist null

Die zweite Zeile entspricht:

string s = (sb == null ? null : sb.ToString());

Trifft der Elvis-Operator auf null, verwirft er den Rest des Ausdrucks. Im folgenden Beispiel wird s zu null ausgewertet, obwohl zwischen ToString() und ToUpper() ein Standard-Punktoperator genutzt wird:

System.Text.StringBuilder sb = null;

string s = sb?.ToString().ToUpper(); // kein Fehler

Ein wiederholter Einsatz des Elvis-Operators ist nur dann notwendig, wenn der direkt links danebenstehende Operand null sein kann. Der folgende Ausdruck reagiert robust, wenn x oder x.y null ist:

x?.y?.z

Er entspricht dem folgenden Code (abgesehen davon, dass x.y nur einmal ausgewertet wird):

x == null ? null

: (x.y == null ? null : x.y.z)

Der endgültige Ausdruck muss eine Nullreferenz aufnehmen können. Folgender Code ist ungültig, weil int keine Null akzeptiert:

System.Text.StringBuilder sb = null;

int length = sb?.ToString().Length; // ungültig

Wir können das beheben, indem wir einen nullbaren Werttyp einsetzen (siehe »Nullbare (Wert-)Typen« auf Seite 150):

int? length = sb?.ToString().Length; // okay:

// int? kann null sein

Sie können den Null-Bedingungsoperator auch einsetzen, um eine void-Methode aufzurufen:

someObject?.SomeVoidMethod();

Ist someObject null, wird dies zu einer »Nicht-Operation«, statt eine NullReferenceException zu werfen.

Der Null-Bedingungsoperator kann mit den üblichen Typ-Membern genutzt werden, die wir in »Klassen« auf Seite 67 beschreiben – einschließlich Methoden, Feldern, Eigenschaften und Indexern. Er lässt sich auch gut mit dem Null-Verbindungsoperator kombinieren:

System.Text.StringBuilder sb = null;

string s = sb?.ToString() ?? "nichts"; // s wird zu "nichts"

Null-Verbindungszuweisung (C# 8)

Der ??=-Operator weist nur dann eine Variable zu, wenn sie nicht null ist. Sie können nun also statt

If (s != null) s = "Hallo Welt";

Folgendes schreiben:

s ??= "Hallo Welt";

Anweisungen


Funktionen enthalten Anweisungen, die in der Reihenfolge abgearbeitet werden, in der sie im Quelltext erscheinen. Ein Anweisungsblock ist eine Abfolge von Anweisungen, die zwischen geschweiften Klammern stehen (den Token {}).

Deklarationsanweisungen

Eine Deklarationsanweisung deklariert eine neue Variable und initialisiert sie optional mit einem Ausdruck. Eine Deklarationsanweisung endet mit einem Semikolon. Sie können mehrere Variablen desselben Typs in einer kommaseparierten Liste angeben:

bool rich = true, famous = false;

Eine Deklaration einer Konstanten ähnelt der Variablendeklaration, nur dass sie nach der Deklaration nicht mehr geändert werden kann und die Initialisierung zusammen mit der Deklaration geschehen muss (siehe »Konstanten« auf Seite 68):

const double c = 2.99792458E08;

Variablen mit lokaler Geltung

Die Geltung lokaler Variablen und lokaler Konstanten erstreckt sich über den aktuellen Block. Sie können keine weitere lokale Variable mit dem gleichen Namen im aktuellen Block oder eingebetteten Blöcken deklarieren.

Ausdrucksanweisungen

Ausdrucksanweisungen sind Ausdrücke, die auch gültige Anweisungen sind. In der Praxis sind das Ausdrücke, die etwas »tun«; anders gesagt, sind es Ausdrücke, die

  • ein Objekt instanziieren oder
  • eine Methode aufrufen.

Ausdrücke, die nichts davon tun, sind keine gültigen Anweisungen:

string s = "foo";

s.Length; // Illegale Anweisung: Tut nichts!

Wenn Sie einen Konstruktor oder eine Methode aufrufen, der/die einen Wert zurückgibt, sind Sie nicht gezwungen, das Ergebnis zu nutzen. Wenn allerdings der Konstruktor oder die Methode keinen Zustand ändert, ist die Anweisung komplett nutzlos:

new StringBuilder(); // Legal, aber nutzlos.

x.Equals (y); // Legal, aber nutzlos.

Auswahlanweisungen

Auswahlanweisungen steuern den Fluss der Programmausführung mithilfe von Bedingungen.

Die if-Anweisung

Eine if-Anweisung führt eine Anweisung aus, wenn ein bool-Ausdruck wahr ist, zum Beispiel so:

if (5 < 2 * 3)

Console.WriteLine ("true"); // true

Die Anweisung kann ein Anweisungsblock sein:

if (5 < 2 * 3)

{

Console.WriteLine ("true"); // true

Console.WriteLine ("...")

}

Die else-Klausel

Eine if-Anweisung kann optional eine else-Klausel haben:

if (2 + 2 == 5)

Console.WriteLine ("Wird nicht ausgeführt");

else

Console.WriteLine ("False"); // False

In eine else-Klausel können Sie weitere if-Anweisungen einbetten:

if (2 + 2 == 5)

Console.WriteLine ("Wird nicht ausgeführt");

else

if (2 + 2 == 4)

Console.WriteLine ("Wird ausgeführt"); // Wird ausgeführt.

Änderung des Programmflusses durch geschweifte Klammern

Eine else-Klausel gehört immer zur direkt davor befindlichen if-Anweisung im Anweisungsblock, zum Beispiel hier:

if (true)

if (false)

Console.WriteLine();

else

Console.WriteLine ("Wird ausgeführt");

Das ist semantisch identisch mit dem hier:

if (true)

{

if (false)

Console.WriteLine();

else

Console.WriteLine ("Wird ausgeführt");

}

Wir können den Programmablauf ändern, indem wir die Klammern verschieben:

if (true)

{

if (false)

Console.WriteLine();

}

else

Console.WriteLine ("Wird nicht ausgeführt");

C# hat kein »elseif«-Schlüsselwort, aber mit dem folgenden Muster erzielt man das gleiche Ergebnis :

static void...

Erscheint lt. Verlag 15.4.2020
Reihe/Serie O'Reilly`s kurz & gut
Übersetzer Thomas Demmig
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge C#
Schlagworte C# • C# 8.0 • C Sharp • CSharp • LINQ • LINQPad • .NET • .NET Framework • Programmiersprache • Programmierung • Visual Studio
ISBN-10 3-96010-375-1 / 3960103751
ISBN-13 978-3-96010-375-2 / 9783960103752
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
Größe: 1,1 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich