c sharp6
Post on 16-Aug-2015
229 Views
Preview:
TRANSCRIPT
C# 6.0@yone64
ちょっとややこしいバージョンのお話
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 のバージョンに制限を受ける機能も存在する。
とはいえ、年表
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/
WFLINQ Expression
Taskdynamic
async/await
ちょっと振り返り
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 型推論
ちょっと振り返り
C# 4.0 (Visual Studio 2010 / .NET Framework 4.0)
dynamic 、名前付き引数、省略可能なパラメーター、ジェネリックの共変性 / 反変性
C# 5.0 (Visual Studio 2012 ・ 2013 / .NET Framework 4.5)
async / await 、呼び出し元情報属性
C# 6.0 言語強化
パラダイムシフトを伴う大きな変更はない。 たくさんの小さな新機能 コード量の削減
例外フィルタ using static
nameof 演算子 文字列補間 ラムダ式本体によるメンバの記述 null 条件演算子 自動実装プロパティーの強化 などなど
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
実際にコードを見てみましょう
新機能まとめ①
例外フィルター VB.NET より輸入 keyword が if から when に変更されているので注意
using static
Java の static import と類似機能 乱用すると読みにくくなるので注意
nameof 演算子 文字列をリファクタリング連動させたい場合に便利 インスタンスメンバにクラス修飾でアクセスするのが少し不思議
新機能まとめ②
文字列補間 String.Format の SyntaxSugar
Iformattable は唯一 .NET Framework4.6 に依存する機能 ラムダ式本体によるメンバの記述
メソッドとプロパティーの本体がお手軽記述 ちょっと見分けにくくなった気がしないでもない
null 条件演算子 null チェック不要 struct と class で結果が違うので注意
新機能まとめ③
自動実装プロパティーの強化 読取専用プロパティーの追加 宣言時初期化
top related