ねののお庭。

かりかりもふもふ。

【C#】C# 14 / .NET 10 の新機能 (RC 1 時点)

というタイトルで.NETラボで喋ってきました。

スライドはこちら

内容はこんな感じ。

  • C# 14 の新機能
    • Extension members
    • field keyword の追加
    • First-class Span Types
      • 暗黙的型変換
      • オーバーロード解決時における Span / ReadOnlySpan の優先
    • nameof が unbound generic type をサポート
    • ラムダ式においてパラメータ修飾子を用いる際の記述の簡略化
    • Partial events
    • Null-conditional assignment
    • 複合代入演算子のオーバーロード
  • .NET 10 の新しい BCL
    • Guid.Parse / TryParse が ROS<byte> 対応
    • Console.Write / WriteLine が ROS<char> 対応
    • LINQ
      • LeftJoin
      • RightJoin
      • Shuffle
      • Sequence
      • InfiniteSequence
    • Async LINQ
    • MemoryExtensions の各種拡張メソッドに IEqualityComparer 受け取るオーバーロードが追加
    • MemoryExtensions に CountAny / ReplaceAny / ReplaceAnyExcept が追加
    • System.Runtime.CompilerServices に InlineArray2 ~ InlineArray16 が追加
    • System.Threading に Volatile.ReadBarrier / WriteBarrier が追加
    • System.Net.ServerSentEvents が BCL 入り
    • WebSocketStream
      • Create
      • CreateReadableMessageStream
      • CreateWritableMessageStream
    • HttpMethod.Query の追加
    • Numeric Ordering for String Comparison
    • TimeSpan.FromMilliseconds のちょっとしたオーバーロードの追加
    • OrderedDictionary.TryAdd / TryGetValue のオーバーロード追加
    • System.Text.Json
      • プロパティの重複の禁止
      • JsonSerializerOptions.Strict の追加
      • JsonMarshal.GetRawUtf8PropertyName
      • JsonSerializer.DeserializeAsync に PipeReader を受け取るオーバーロード追加
    • ActivitySource / Meter に Schema URL を設定できるように
    • FrozenDictionary.Create
    • ImmutableDictionary.CreateRangeWithOverwrite
    • Convert.FromHexString / TryToHexString の ROS<byte> 対応
  • .NET 10 の新機能
    • File based apps
    • slnx 爆誕!さらば sln!