Mais conteúdo relacionado Semelhante a C# 9 のおすすめ新機能 (20) C# 9 のおすすめ新機能1. / 27
C# 9 のおすすめ新機能
1
C# TOKYO オンライン LT 大会
2021年01月29日
石崎 充良
2. / 27
自己紹介
石崎 充良 ( @mishi_cs )
Microsoft MVP for Developer Technologies
言語: C# XAML
活動:
・C# もくもく会 (connpass)
・C# Tokyo (connpass)
2
5. / 27
C# 7・8・9 の歴史
C# リリース ターゲット フレームワーク
7 2017/03 .NET Framework
8 2019/09 .NET Core 3.0
9 2020/11 .NET 5
5
6. / 27
C# 7・8・9 の歴史
C# リリース ターゲット フレームワーク
7 2017/03 .NET Framework
8 2019/09 .NET Core 3.0
9 2020/11 .NET 5
6
7. / 27
C# 9 の新機能一覧
•レコード
•init 専用セッター
•最上位レベルのステートメント
•パターン マッチングの拡張機能
•ターゲット型の新しい式
•ネイティブ サイズの整数
•関数ポインター
•localsinit フラグの出力を抑制する
•静的な匿名関数
•共変の戻り値の型
•ラムダ ディスカード パラメーター
•モジュールの初期化子
•foreach ループの拡張機能 GetEnumerator サポート
•ローカル関数の属性
•ターゲットにより型指定された条件式
•部分メソッドの新機能
7
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-9
※順番は変えています
8. / 27
C# 9 の新機能一覧 – 分類
•レコード
•init 専用セッター
•最上位レベルのステートメント
•パターン マッチングの拡張機能
•ターゲット型の新しい式
•ネイティブ サイズの整数
•関数ポインター
•localsinit フラグの出力を抑制する
•静的な匿名関数
•共変の戻り値の型
•ラムダ ディスカード パラメーター
•モジュールの初期化子
•foreach ループの拡張機能 GetEnumerator サポート
•ローカル関数の属性
•ターゲットにより型指定された条件式
•部分メソッドの新機能
8
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-9
※順番は変えています
超! 人気の機能
話す人が多い(と思う)
unsafe とか
誰もが触る機能ではない
地味だったり
マイナーだったり
誰もが触る機能ではない
9. / 27
C# 9 の新機能一覧 – 今日の話
•レコード
•init 専用セッター
•最上位レベルのステートメント
•パターン マッチングの拡張機能
•ターゲット型の新しい式
•ネイティブ サイズの整数
•関数ポインター
•localsinit フラグの出力を抑制する
•静的な匿名関数
•共変の戻り値の型
•ラムダ ディスカード パラメーター
•モジュールの初期化子
•foreach ループの拡張機能 GetEnumerator サポート
•ローカル関数の属性
•ターゲットにより型指定された条件式
•部分メソッドの新機能
9
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-9
※順番は変えています
誰もが使うがちょっと地味
今日はここを話します
16. / 27
ラムダ ディスカード パラメーター
return 値の破棄
16
使わない値は _ で破棄できる
ラムダ式の引数でも可能に
使わない引数は _ で破棄できる
いままでは
_ は有効な変数名なので名前の
衝突回避に __ と書いたり
_ や __ が普通に
使えたり
26. / 27
C# 9 のおすすめ機能
26
地味ながら、使いこなすとソースコードがスマートになりミス
が減ります。
ミスが減れば、残業も減って定時退社も可能です。
定時退社しましょう!
•静 的 な 匿 名 関 数
•共 変 の 戻 り 値 の 型
•ラ ム ダ デ ィ ス カ ー ド パ ラ メ ー タ ー
•モ ジ ュ ー ル の 初 期 化 子
•f o r e a c h ル ー プ の 拡 張 機 能 G e t E n u m e r a t o r サ ポ ー ト
27. / 27
その他の機能
ほかの機能は Web で!
27
https://rksoftware.hatenablog.com/entry/2020/11/09/024330
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-9