Microsoftの.NETエンジニアリングチームは11月12日(米国時間)、「Building C# 8.0|.NET Blog」において、C#の次のメジャーアップグレードバージョンとなる「C# 8.0」で導入が予定されている新機能を紹介した。

現在のところ、C#は.NET Core 3.0とともに出荷が予定されている。C# 8.0の新機能はVisual Studio 2019のプレビュー版で試すことができるとしており、先行して新機能が紹介されている。C# 8.0の主な新機能は次のとおり。

  • NULL可能な参照型の導入(Nullable Reference Types)。これはオブジェクト指向プログラミング言語で問題になることが多いユビキタスNULL参照例外(Ubiquitous Null Reference Exceptions)を避けるために導入される機能
  • C# 5.0で導入されたAsync/Await機能では対処することができない場合に利用できる非同期ストリームIAsyncEnumerable<T>の導入
  • インデックス用途に利用できる新しい型Indexの導入
  • 2つのIndexで構築される新しい型Rangeの導入
  • インタフェースメンバーに対する中身の提供。この機能によってメンバーが実装されていない場合、代替としてデフォルト実装の利用が可能になる
  • パターンに対してほかのパターンを含めることを許可
  • パターン指定Switch制御構文をさらに書きやすくした「Switch式」の導入
  • コンテキストから型が推測できる場合には型の指定を省略可能
  • NULL可能な参照型の使用例 - 資料: .NETエンジニアリングチーム提供

    NULL可能な参照型の使用例 - 資料: .NETエンジニアリングチーム

C# 8.0は基本的にはどのバージョンの.NETでも動作する。しかし、特定の機能はプラットフォームに依存しているため、特定のバージョンの.NET Coreや.NET Frameworkが必要になるものがある。新機能を利用したい場合にはどのプラットフォームが必要になるかをチェックして必要がある。