以下の内容はhttps://rksoftware.hatenablog.com/entry/2025/07/27/213000より取得しました。


C# 14 の情報を振り返る その5 / C# 14 (.NET 10 世代の C# ) バインドされていないジェネリック型と nameof / unbound-generic-support-for-nameof

C# 14 (.NET 10 世代の C# ) の機能、バインドされていないジェネリック型と nameof / unbound-generic-support-for-nameof を見てみます。

■ これまでは

ジェネリクス型を nameof をする際には、型パラメータを指定する必要がありました。

■ これからは

型パラメータを指定しなくとも nameof が使用できます。

■ コードで例

// これは以前からできた
Console.WriteLine($"名前は {nameof(List<int>)} です");   // 名前は List です

// これができるようになった
Console.WriteLine($"名前は {nameof(List<>)} です");   // 名前は List です
// Preview バージョンを指定していない場合のエラー
// 機能 'nameof 演算子でバインドされていないジェネリック型' は現在、プレビュー段階であり、*サポートされていません*。プレビュー機能を使用するには、'preview' 言語バージョンを使用してください。

■ 余談 - ジェネリクス型の Type

nameof では型パラメーターは結果に影響しませんが、typeof では影響します。というか、こちらで影響するので、今回 nameof の動作を見て少し驚きました。

Console.WriteLine($"Type は {typeof(List<int>).FullName} です");   // Type は  System.Collections.Generic.List`1[[System.Int32, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e] です
Console.WriteLine($"Type は {typeof(List<>).FullName} です");   // Type は System.Collections.Generic.List`1 です

■ 今回のコード

GitHub に上げています。

github.com

■ 備えよう

新機能、いいですね。リリースに備えましょう。




以上の内容はhttps://rksoftware.hatenablog.com/entry/2025/07/27/213000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14