C sharp6
- 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のバージョンに制限を受ける機能も存在する。
- 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. ちょっと振り返り
? 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. C# 6.0 言語強化
? パラダイムシフトを伴う大きな変更はない。
? たくさんの小さな新機能
? コード量の削減
? 例外フィルタ
? using static
? nameof演算子
? 文字列補間
? ラムダ式本体によるメンバの記述
? null条件演算子
? 自動実装プロパティーの強化 などなど
- 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
- 9. 新機能まとめ①
? 例外フィルター
? VB.NETより輸入
? keyword が if から when に変更されているので注意
? using static
? Java の static importと類似機能
? 乱用すると読みにくくなるので注意
? nameof演算子
? 文字列をリファクタリング連動させたい場合に便利
? インスタンスメンバにクラス修飾でアクセスするのが少し不思議