.NET Core 2.1 が正式リリースされたみたいですね。

内部的にかなりパフォーマンス改善してるとか、 .NET Global Toolsが使えるとか、 SourceLinkに対応したらしいとかいろいろありますが。 C# 的に直接的に関わってくるのはSpan<T>構造体のリリースでしょうか。

C# 7.2で、Span<T>がらみの言語機能がいろいろ入っているんですが、 肝心のSpan<T>自体がプレビュー状態でした。 (.NET の基本ライブラリ自体がC#で書かれてる部分が多いので、 先に言語機能が入ってくれないとSpan<T>周りの最適化がやりにくいので。) それが今日、正式リリースとなりました。

Span<T>構造体は以下の環境で使えます。

  • .NET Core 2.1 では標準で使える
  • System.Memory パッケージ を参照すれば、古い .NET ランタイム上でも使える
    • .NET Standard 1.1、.NET Framework 4.5とかにも対応
  • .NET Core 2.1 上で実行すると特にパフォーマンスがいい(fast Span)