More Related Content
Similar to C# 7.2 の新機能 (20)
More from m ishizaki (20)
C# 7.2 の新機能
- 2. / 23
自己紹介
石崎 充良 ( @mishi_cs )
言語: C# XAML
活動:
JXUG (もくもく会) (connpass)
城東.NET Users Group (connpass)
.NET 読書会 (connpass)
2
- 4. / 23
Visual Studio 2017 Version 15.5
・C# 7.2 は Visual Studio の Version 15.5 以上で使える
* アップデート方法 *
インストーラーが立ち上がるので、[更新]
4
- 5. / 23
C# 7.2 の特徴
最近の C# のアップデートの傾向ですが
・パフォーマンス関連が多い
・メモリーの使い方を意識したコードを書ける
・構造体の利用・値型の参照を扱える
5
- 8. / 23
機能の一覧
・Span<T>
Span は配列(など)の一部の範囲を切り出して値の参照を持てる
・readonly struct
readonly struct は readonly なメンバーしか持てない
・in parameters / ref readonly returns
構造体を引数や return 値で参照を渡しつつ、読み取り専用に制限できる
・private protected
同一アセンブリ内でのみアクセスできる protected メンバーを宣言できる
・Non-trailing named arguments
位置が順番とあっていれば、末尾でなくても引数に名前を付けられる
・Allow digit separator after 0b or 0x
0x、0b の直後に _ を書けるようになった
・conditional ref operator
三項演算子で参照(ref)を返せるようになった。参照が返るので、結果に対して値を代入できる
・ref extension methods on structs
拡張メソッドの this 引数を参照にできる
8
- 11. / 23
Span<T> (1/2)
・Span は配列(など)の一部の範囲を切り出して値の参照を持てる
・Sapn を new する際に引数で「2 番目の要素から長さ 3」と指定した場合、for で回
すと「2 番目の要素から 3 つ」が出力される
・最初に作った ary という配列の要素を変更した際に、Span の値も変更されているの
で確かに参照を持っている
・Span だけでなく ReadOnlySpan という読み取り専用の型も存在する
11
- 13. / 23
readonly struct (1/1)
・readonly struct は readonly なメンバーしか持てない
・保持する値が変更されない(値が変更可能になる定義が禁止される)
13
- 14. / 23
in parameters / ref readonly returns (1/2)
・構造体を参照で渡してパフォーマンスを上げたいが、メソッド内/ return 先で書き換
えられたくない場合に使う
・構造体を参照で渡しつつ、読み取り専用に制限できる
14
- 19. / 23
conditional ref operator (1/2)
・三項演算子で参照(ref)を返せるようになった
・参照が返るので、結果に対して値を代入できる
見た目気持ち悪いけれど、とても便利そうで
19