Neu in .NET 9.0 [20]: Erweiterte Nutzung von System.ReadOnlySpan<T>
In .NET 9.0 kommt die Speicherallokationen vermeidende Klasse System.ReadOnlySpan<T> an weiteren Stellen in der .NET-Basisklassenbibliothek zum Einsatz.
(Bild: Pincasso/Shutterstock.com)
- Dr. Holger Schwichtenberg
Die Klasse System.ReadOnlySpan<T>, die Speicherallokationen vermeidet, kommt in .NET 9.0 an weiteren Stellen in der .NET-Basisklassenbibliothek zum Einsatz:
- Microsoft hat zahlreiche Klassen aus der .NET-Klassenbibliothek, die Parameter-Arrays entgegennehmen, darunter
Format(),String.Join(),Console.WriteLine()und APIs im NamensraumSystem.Drawing, mit zusätzlichen Methodenüberladungen fürReadOnlySpan<T>ausgestattet. Dies vermeidet die bei Arrays üblichen, langsameren impliziten Heap-Allokationen, daReadOnlySpan<T>auf dem Stack lebt. - Die Klasse
Regexbietet nun eine MethodeEnumerateSplits(). - In der
IO.File-Klasse können Entwicklerinnen und Entwickler nun direkt mitWriteAllText()Zeichenketten in Form vonReadOnlySpan<char>persistieren. - Analog gibt es bei
WriteAllBytes()eine neue Ăśberladung fĂĽr Bytefolgen, die alsReadOnlySpan<byte>vorliegen. ReadOnlySpan<T>bietet nun die MethodenStartsWith()undEndsWith(), genau wie die KlasseString.
Videos by heise
Folgender Code zeigt die neuen Einsatzgebiete fĂĽr System.ReadOnlySpan<T>:
namespace NET9_Console.FCL90;
internal class FCL9_Spans
{
public void Run()
{
CUI.Demo(nameof(FCL9_Spans));
string path1 = @"c:\temp\info.txt";
string path2 = @"c:\temp\info.bin";
ReadOnlySpan<char> text = ".NET 9.0 erscheint als Nachfolger von .NET 8.0 im November 2024!";
if (text.StartsWith(".NET") && text.EndsWith("!"))
{
File.WriteAllText(path1, text);
CUI.Success("Gespeichert in " + path1);
ReadOnlySpan<byte> bytes = Encoding.UTF8.GetBytes(text.ToString());
File.WriteAllBytes(path2, bytes);
CUI.Success("Gespeichert in " + path2);
}
}
(Bild:Â coffeemill/123rf.com)
Das nächste LTS-Release steht an: Auf der Online-Konferenz betterCode() .NET 10.0 am 18. November 2025 – ausgerichtet von iX und dpunkt.verlag in Kooperation mit IT-visions.de – präsentieren der Autor dieses Artikels, Dr. Holger Schwichtenberg, und weitere Experten die wichtigsten Neuerungen. Dazu zählen die Updates im .NET 10.0 SDK sowie in C# 14.0, ASP.NET Core 10.0, Blazor 10.0, Windows Forms 10.0, WPF 10.0, WinUI 3, .NET MAUI 10.0 und die Integration von Künstlicher Intelligenz in .NET-Anwendungen.
Das Programm ist noch nicht veröffentlicht – bis dahin sind vergünstigte Blind-Bird-Tickets bereits im Online-Shop erhältlich. Das Vorjahresprogramm lässt sich im Archiv einsehen.
(rme)