Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Themenüberblick
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript/TypeScript
Java
Programmiersprachen/Sprachsyntax
Entwicklungswerkzeuge
Scripting
Softwareentwicklung allgemein
Datenbanken
Betriebssysteme und Virtualisierung
Microsoft Server-Produkte
Windows und Microsoft Office für Anwender
Allgemeine IT-Themen
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1019 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor-Ort oder Online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 8.0
.NET 7.0
.NET 6.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Erklärung des Begriffs: CSharp 5.0 (C# 5.0)
Begriff
CSharp 5.0
Abkürzung
C# 5.0
Eintrag zuletzt aktualisiert am
24.05.2022
Zur Stichwortliste unseres Lexikons
Was ist
CSharp 5.0
?
Die Verison 5.0 von C# ist im
.NET Framework 4.5
enthalten und wird von
Visual Studio 2012
unterstützt.
Es gibt zwei neue Features:
1. vereinfachtes asynchrones Programmieren mit async/
await
2.
Caller Info Attribute
s
Vereinfachtes asynchrones Programmieren mit async/
await
Auf Basis der in
.NET 4.0
eingeführten
Task Parallel Library
(
TPL
) bietet Microsoft ein neues, sprachunterstütztes Pattern für asynchrones Programmieren in .NET. Eine
Methode
kann mit dem neuen Schlüsselwort async (C#) bzw. Async (Visual Basic) deklarieren, dass sie plant, im Laufe ihrer Ausführung die Kontrolle an den Aufrufer zurückzugeben. Eine solche asynchrone
Methode
kann ein Task-
Objekt
(aus der
TPL
) oder nichts zurückliefern. Die
Methode
sollte aber auf das Wort "async" enden. Innerhalb der asynchronen
Methode
wird die Kontrolle dann genau nach dem ebenfalls neuen Schlüsselwort Await bzw.
await
an den Aufrufer zurückgegeben. Await bezieht sich immer auf ein Task-
Objekt
, das man entweder selbst erzeugt hat oder von einer anderen asynchronen
Methode
stammt.
Listing 1 zeigt ein Beispiel, indem zunächst ein asynchroner HTTP-Download gestartet wird und dann eine einfache Warteanzeige (Ausgabe von Punkten) ausgibt, die ebenfalls asynchron läuft. Der HTTP-Download basiert auf der neuen
Methode
GetAsync() in der neuen Klasse
System.Net
.Http.HttpClient. Die Warteanzeige verwendet einen selbsterstellten Task. Durch Drücken einer Taste kann man die Konsolenanwendung jederzeit beenden. Im diesem Stil sollen zahlreiche Klassen in der .NET-Klassenbibliothek (z.B.
System.IO
und
System.Data
) neue asynchrone
Methode
n erhalten. In der aktuell verfügbaren Preview-Version ist dies aber noch nicht komplett umgesetzt.
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hauptprogramm Start");
DownloadAsync();
Console.WriteLine("Warten auf Tastendruck");
WarteAnzeige();
Console.ReadLine();
Console.WriteLine("Hauptprogramm Ende");
}
/// <summary>
/// Asynchroner Download (Rückgabe: nichts)
/// </summary>
static private async void DownloadAsync()
{
Console.WriteLine("DownloadAsync() - Schritt 1");
Task<byte[]> task = GetHttpAsync(new Uri("
http://www.IT-Visions.de
"));
Console.WriteLine("DownloadAsync() - Schritt 2");
byte[] ergebnis =
await
task;
Console.WriteLine("DownloadAsync() - Schritt 3");
Console.WriteLine("DownloadAsync() - Ergebnis: " + ergebnis.Length + " Bytes empfangen");
}
/// <summary>
/// Asynchroner Download (Rückgabe: Task<T></T>)
/// </summary>
static private async Task<byte[]> GetHttpAsync(Uri current
URI
)
{
Console.WriteLine("GetHttpAsync() - Schritt 1.
URL
= " + current
URI
);
HttpClient client = new HttpClient() { MaxResponseContentBufferSize = 1000000 };
Console.WriteLine("GetHttpAsync() - Schritt 2.
URL
= " + current
URI
);
HttpResponseMessage httpRM =
await
client.GetAsync(current
URI
);
Console.WriteLine("GetHttpAsync() - Schritt 3.
URL
= " + current
URI
);
return httpRM.Content.ReadAsByteArray();
}
/// <summary>
/// Warteanzeige mit eigenem Task-
Objekt
/// </summary>
static private async Task WarteAnzeige()
{
var t = new Task(() => Print(10));
t.Start();
await
t;
}
/// <summary>
///
Methode
für Task in WarteAnzeige()
/// </summary>
static private void Print(int Anzahl)
{
for (int I = 0; I < Anzahl; i++)
{
Console.Write(".");
System.Threading
.Thread.Sleep(100);
}
}
}
Listing 1: Asynchrones Programmieren in
.NET 4.0
Caller Info Attribute
s
Als weitere Möglichkeit bieten der C# 5.0- und
VB 11.0
-
Compiler
sogenannte
Caller Info Attribute
s ([CallerFilePath]
[CallerLineNumber], [CallerMemberName]), mit denen man
Methode
nparameter annotieren kann. Dadurch erhält die gerufene
Methode
Informationen über den Aufrufer (vgl.
_FILE__ und __LINE_
in C++).
Visual Basic wird noch ebenbürtiger zu C# durch die Übernahme der Schlüsselwörter Global (zur Namensraumfestlegung) und Yield (zur
Iterator
-Implementierung). Auch die Call Hierarchy-Ansicht in der
Entwicklungsumgebung
, die in
Visual Studio 2010
für C# eingeführt wurde, gibt es nun für Visual Basic.
Querverweise zu anderen Begriffen im Lexikon
Caller Info Attribute
Task Parallel Library (TPL)
Entwicklungsumgebung
Visual Studio 2012 (VS2012)
Visual Studio 2010 (VS2010)
.NET Framework 4.5 (.NET 4.5)
System.Threading
System.Data
System.Net
System.IO
.NET 4.0
Iterator
Compiler
Methode
Objekt
await
Visual Basic 2012 (VB 11.0)
Task Parallel Library (TPL)
Uniform Resource Locator (URL)
Uniform Resource Identifier (URI)
Beratung & Support
Anfrage für Beratung/Consulting zu CSharp 5.0 C# 5.0
Gesamter Beratungsthemenkatalog
Technischer Support zum CSharp 5.0 C# 5.0
Schulungen zu diesem Thema
Neuerungen in C# 5.0
C#-Basiswissen (Grundlagen der Programmiersprache C#)
.NET 4.5-Update - Die Neuerungen in .NET Framework 4.5/4.5.1/4.5.2 und Visual Studio 2012/2013 im Überblick
Anfrage für eine individuelle Schulung zum Thema CSharp 5.0 C# 5.0
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr