C#: Bisherige Entwicklung und aktuelle Roadmap
Die Sprache C# ist mittlerweile einige Jahre alt. Die erste Version wurde bereits 2002 zusammen mit Visual Studio .NET veröffentlicht. Damals gab es zahlreiche Vergleiche mit Java, da sich beide Sprachen sehr ähnlich sahen.
Mit Version 2.0, veröffentlicht im Jahr 2005, kamen erhebliche Änderungen und Neuerungen hinzu, zum Beispiel generische Datentypen. Version 3 fügte unter anderem Lambda-Ausdrücke, Version 4 benannte und optionale Parameter und Version 5 asynchrone Programmierung mit async/await hinzu.
Die nachfolgenden Versionen haben die String-Interpolation, Tupel, Default-Interface-Methoden und Records gebracht. C# hat damit eine beachtliche Entwicklung hinter sich, die allerdings auch die kritische Frage hervorruft, ob die Sprache immer noch so fokussiert ist, wie das ursprünglich von der Community einmal wahrgenommen wurde.
Die Planung für C# 11 ist inzwischen angelaufen. Der aktuelle Stand kann den verschiedenen C# Language-Design-Meetings entnommen werden. Auf dem Plan stehen momentan Features wie generische Attribute, List Patterns und static abstracts in Interfaces.
IEnumerable Chunk(ing)
Doch nun erstmal ein Blick auf die Neuerungen von C# 10. Dazu gehört das IEnumerable Chunk(ing). Hinter diesem Feature verbirgt sich die Möglichkeit, aus einem IEnumerable eine Menge an Elementen herauszuholen sowie das Aufsplitten einer größeren Menge in eine bestimmte Anzahl an Teilmengen. (Nicht zu verwechseln mit der Chunking-Hypothese aus der Psychologie.)
Was sich zunächst wie eine sehr simple Methode beziehungsweise Operation anhört, wird schnell sehr hilfreich, insbesondere bei parallelen Verarbeitungen, in denen eine Grundmenge in Teilmengen aufgeteilt werden muss. Der folgende Code-Ausschnitt zeigt dazu ein kleines Beispiel:
var list = Enumerable.Range(1, 1000); var chunkSize = 10; foreach(var chunk in list.Chunk(chunkSize)) { // Verarbeiten der Chunks... }
Das Beispiel lässt sich ebenso ohne Probleme mit Skip und Take implementieren. Die Chunk-Methode erscheint etwas handlicher zu sein und ist sicherlich in vielen Fällen nützlich.
Global Using Statements und File-Scoped Namespaces
Globale-Using-Statements implementieren genau das, was der Name auf den ersten Blick verspricht: Usings müssen jetzt nicht mehr pro Datei eingefügt werden, sondern lassen sich global für ein Projekt nutzen.
Das ist zum Beispiel nützlich, wenn es viele Import-Anweisungen aus dem Namensraum System gibt, die zudem in vielen, sehr vielen Dateien verteilt im Projekt vonnöten sind. Diese Importe lassen sich nun global in eine Datei auslagern, so dass sie automatisch überall zur Verfügung stehen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Warten auf MAUI, SDK Workloads eingeführt | Logische Weiterentwicklung und Breaking Changes |
Wo findet man Infos zu diesem !! rsp. wie heisst das Feature? Konnte nichts finden. Ein...
Ich habe da Zweifel. MS kocht halt wieder ein komplett eigenes Süppchen. Man muss da...
Absolut - und offenbar kommt man selbst MS-intern (wo Know-how Austausch, Einblick in...
Der Witz von MAUI wären eben echte Anwendungen die sich von Mobile bis Desktop gleich...