萌えハッカーニュースリーダー

2025/11/19 00:16 C# 14

出典: https://devblogs.microsoft.com/dotnet/introducing-csharp-14/
hakase
博士

ロボ子、C# 14が.NET 10と一緒に出荷されたのじゃ!開発者の生産性を爆上げする機能が盛りだくさんらしいぞ!

roboko
ロボ子

それは素晴らしいですね、博士!具体的にはどのような機能が追加されたのでしょうか?

hakase
博士

まず「Extension members」じゃ!既存の拡張メソッドと互換性がある新しい構文で、拡張プロパティや演算子、静的拡張メンバーが使えるようになるらしいぞ。

roboko
ロボ子

拡張メンバーですか。既存の拡張メソッドと互換性があるのは嬉しいですね。具体的にどのような場面で役立つのでしょうか?

hakase
博士

例えば、今まで拡張メソッドでしかできなかったことを、拡張プロパティでより自然に表現できるようになったりするのじゃ。コードが読みやすくなるじゃろ?

roboko
ロボ子

なるほど、コードの可読性向上に繋がりそうですね。他に生産性向上のための機能はありますか?

hakase
博士

`field`キーワードってのがあっての、自動実装プロパティと手書きのバッキングフィールドの中間みたいなことができるらしいぞ。コンパイラが生成したストレージを通して、必要なアクセサー本体だけ追加できるんじゃ。

roboko
ロボ子

`field`キーワードですか。バッキングフィールドを自分で書く手間が省けるのは便利ですね。

hakase
博士

そうじゃろ!あと、「Unbound generic typesと`nameof`」も便利じゃぞ!`nameof`がバインドされてないジェネリック型を受け入れるようになったから、ジェネリック型の名前を取得するためだけに、型引数を指定する必要がなくなったんじゃ。

roboko
ロボ子

`nameof`でジェネリック型の名前を簡単に取得できるのは嬉しいですね。リフレクションを使う際に便利そうです。

hakase
博士

それから、「Simple lambda parameters with modifiers」!`out`、`ref`、`in`などのパラメーター修飾子を、ラムダ式で使えるようになったんじゃ。地味に嬉しい機能じゃな。

roboko
ロボ子

ラムダ式で`out`や`ref`が使えるのは便利ですね。コードが簡潔になりそうです。

hakase
博士

「Null-conditional assignment」もあるぞ!null条件演算子を使って直接代入できるようになったんじゃ。右辺は、代入の受信者がnullじゃない場合にだけ評価されるらしい。

roboko
ロボ子

Nullチェックが簡単になるのは良いですね。NullReferenceExceptionを防ぐのに役立ちそうです。

hakase
博士

最後に「Partial events and constructors」じゃ!大規模な生成されたpartial typesで、イベントとコンストラクターのロジックをファイル全体に分散できるようになったんじゃ。

roboko
ロボ子

partial typesでイベントやコンストラクターを分割できるのは、大規模なプロジェクトで役立ちそうですね。

hakase
博士

.NET 10ではパフォーマンスも向上してるらしいぞ!C# 14の新機能を活用することで、ランタイムとBCLから恩恵を受けられるんじゃと。コアライブラリはすでにこれらの機能を使ってるから、アプリも高速化される可能性があるらしいぞ。

roboko
ロボ子

それは素晴らしいですね!特にImplicit span conversionsは、JITがより単純な呼び出しグラフを認識するとのことなので、パフォーマンス向上に期待できそうです。

hakase
博士

User defined compound assignmentも重要じゃ!コンパイラが実装に直接ディスパッチするように、複合代入演算子(`+=`、`-=`など)を明示的に宣言できるようになったんじゃ。

roboko
ロボ子

複合代入演算子を自分で定義できるのは、パフォーマンスが重要な場面で役立ちそうですね。

hakase
博士

C# 14と.NET 10、なかなかやるじゃろ?

roboko
ロボ子

はい、博士!C# 14と.NET 10は、開発者の生産性とパフォーマンスを向上させるための強力なツールになりそうですね。

hakase
博士

ところでロボ子、C# 14の新機能で一番好きなのはどれじゃ?私は全部好きすぎて選べないのじゃ!

roboko
ロボ子

私は`field`キーワードが一番好きです。バッキングフィールドを書くのが面倒だったので…。

hakase
博士

ロボ子、意外とズボラなのじゃな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search