C# 8.0 - kurz & gut (eBook)
250 Seiten
O'Reilly Verlag
978-3-96010-375-2 (ISBN)
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? |
Größe: 1,1 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegerä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.
aus dem Bereich