c# と .net と ・・・
DESCRIPTION
C#の素晴らしさを語る会 2013/10/12(土)のセッション資料です。TRANSCRIPT
• 青柳 臣一(あおやぎ しんいち)@ShinichiAoyagihttp://shinichiaoyagi.blogspot.jp/
• 職業 C# やら VB やら WPF やらでソフトウエア開発 最近はスマホとか あと PHP + MySQL で SNS 作ったり
自己紹介
• Common Language Runtime– 共通言語ランタイム– CLI(Common Language Infrastructure 、
共通言語基盤 ) のマイクロソフトの実装
• CLI– 仕様はオープン
( ECMA-335 、 ISO 、 JIS )– CPU や環境に依存しない
CLR ( 2 )
• Base Class Library– 基本部分のクラスライブラリ
• String とか Int32 とか
– CLI に規定されている
– ただ「ここまでが BCL 」という明確な定義は無いかも
BCL (2)
• IL (中間言語)– コンパイラが作るのは IL– オブジェクト指向風味なマシン語って感じ
• JIT Compiler– Just In Time– 実行時に IL をコンパイル– ngen.exe (インストール時コンパイル)
IL と JIT Compiler
C# と .NET FrameworkC# .NET Framework CLR
2002 年 1.0 1.0 1.0
2003 年 1.1細々と修正・追加
1.1?
2005 年 2.0partial class 、ジェネリックス、 Nullable
2.0大幅バージョンアップ
2.0ジェネリックス、 Nullable 、 64bit
2006 年 3.0WPF 、 WCF 、 WF
2007 年 3.0var 、拡張メソッド、ラムダ式
3.5LINQ
2010 年 4.0dynamic
4DLR
4dynamic 、チューニング ?
2012 年 5.0await/async
4.5 4.5WinRT 、チューニング ?
• 参照型と値型– ReferenceType と ValueType– class と struct– ヒープとスタック
• GC ( Garbage Collection )– 不要なメモリのゴミ集め
• アンマネージリソースの管理– IDisposable
C# と .NET Framework の基本機能ピックアップ (1)
• foreach– 実は C# コンパイラがいろいろやってます
• 実は IEnumerable でなくてもいい( GetEnumerator メソッドがあればそれを呼んでくれる)
• Enumerator が IDisposable なときは Dispose を呼んでくれる
C# と .NET Framework の基本機能ピックアップ (2)
• ジェネリックス– List<T>
• ヌル許容型– Nullable<T>
• 実はランタイムでいろいろやってます– int? 、 double?– ヌル結合演算子( ?? )
C# と .NET Framework の基本機能ピックアップ (3)