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 sharp6

1,150 views

Published on

めとべや大阪#31

Published in: Technology
  • Be the first to comment

C sharp6

  1. 1. C# 6.0 @yone64
  2. 2. ちょっとややこしいバージョンのお話  C# と .NET Framework と Visual Studioの関係  C# : プログラミング言語  .NET Framework  Class Library : ライブラリ  Runtime : 実行環境  Visual Studio : 開発環境、C#をコンパイルしIL(中間言語)を生成  C#のバージョンにより、使えるVisual Studioが決まるが、ターゲットとな る.NET Frameworkのバージョンは選べる。  C#6.0の文法を使うにはVisual Studio 2015が必要だが、.NET Framework2.0上で動作 するプログラムを作成可能。  ただし、.NET Framworkのバージョンに制限を受ける機能も存在する。
  3. 3. とはいえ、年表 C# 1.0 1.2 2.0 3.0 4.0 5.0 6.0 .NET Framework 1.0 1.1 2.0 3.0 3.5 4.0 4.5 4.6 Visual Studio 2002 2003 2005 2008 2010 2012 2013 2015 Generic Collection型パラメータ WPF/WCF/WF LINQ Expression Taskdynamic async/await
  4. 4. ちょっと振り返り  C# 1.0 (Visual Studio .NET 2002 / .NET Framework 1.0)  最初のリリース  C# 1.2 (Visual Studio .NET 2003 / .NET Framework 1.1)  #line ,xml document  C# 2.0 (Visual Studio 2005 / .NET Framework 2.0)  匿名メソッド、ジェネリック、null許容型、反復子、staticクラス、デリゲートの共 変性/反変性  C# 3.0 (Visual Studio 2008 / .NET Framework 3.5)  オブジェクト初期化子、コレクション初期化子、ラムダ式、拡張メソッド、匿名型、 自動プロパティ、言語統合クエリ (LINQ)、匿名型、ローカル var 型推論
  5. 5. ちょっと振り返り  C# 4.0 (Visual Studio 2010 / .NET Framework 4.0)  dynamic 、名前付き引数、省略可能なパラメーター、ジェネリックの共変性/反変性  C# 5.0 (Visual Studio 2012・2013 / .NET Framework 4.5)  async / await、呼び出し元情報属性
  6. 6. C# 6.0 言語強化  パラダイムシフトを伴う大きな変更はない。  たくさんの小さな新機能  コード量の削減  例外フィルタ  using static  nameof演算子  文字列補間  ラムダ式本体によるメンバの記述  null条件演算子  自動実装プロパティーの強化 などなど
  7. 7. Visual Studio 2015  .NET Compiler Platform “Roslyn”  C#で記述されたC#コンパイラ  ライブコード分析「Light Bulbs」  リファクタリングすべき内容などを電球マークで警告  C# Essentials  C#6.0の記述への書き換えをSuggestするプラグイン  https://visualstudiogallery.msdn.microsoft.com/a4445ad0-f97c-41f9-a148- eae225dcc8a5
  8. 8. 実際にコードを見てみましょう
  9. 9. 新機能まとめ①  例外フィルター  VB.NETより輸入  keyword が if から when に変更されているので注意  using static  Java の static importと類似機能  乱用すると読みにくくなるので注意  nameof演算子  文字列をリファクタリング連動させたい場合に便利  インスタンスメンバにクラス修飾でアクセスするのが少し不思議
  10. 10. 新機能まとめ②  文字列補間  String.FormatのSyntaxSugar  Iformattableは唯一.NET Framework4.6に依存する機能  ラムダ式本体によるメンバの記述  メソッドとプロパティーの本体がお手軽記述  ちょっと見分けにくくなった気がしないでもない  null条件演算子  nullチェック不要  structとclassで結果が違うので注意
  11. 11. 新機能まとめ③  自動実装プロパティーの強化  読取専用プロパティーの追加  宣言時初期化

×