Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

C# 7.2 の新機能

283 views

Published on

C# 7.2 の新機能について

Published in: Technology
  • Be the first to comment

C# 7.2 の新機能

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

×