SlideShare a Scribd company logo
青柳 臣一 @ShinichiAoyagi
C# と .NET と ・・・
C#の素晴らしさを語る会
2013/10/12(土)
• 青柳 臣一(あおやぎ しんいち)
@ShinichiAoyagi
http://shinichiaoyagi.blogspot.jp/
• 職業 C# やら VB やら WPF やらでソフトウエア開発
最近はスマホとか
あと PHP + MySQL で SNS 作ったり
自己紹介
• アンダース・ヘルスバーグのサイン入り
ちょっと自慢
サイン入り C# 2.0 本
サイン入り ケース
CLR(1)
microsoft.com より
• Common Language Runtime
– 共通言語ランタイム
– CLI(Common Language Infrastructure、共通
言語基盤)のマイクロソフトの実装
• CLI
– 仕様はオープン
(ECMA-335、ISO、JIS)
– CPU や環境に依存しない
CLR(2)
BCL (1)
microsoft.com より
• Base Class Library
– 基本部分のクラスライブラリ
•String とか Int32 とか
– CLI に規定されている
– ただ「ここまでが BCL」という明確な定義は
無いかも
BCL (2)
• IL(中間言語)
– コンパイラが作るのは IL
– オブジェクト指向風味なマシン語って感じ
• JIT Compiler
– Just In Time
– 実行時に IL をコンパイル
– ngen.exe(インストール時コンパイル)
IL と JIT Compiler
• C# 言語仕様
– ECMA-334、ISO、JIS
C# もオープン
C# と .NET Framework
C# .NET Framework CLR
2002年 1.0 1.0 1.0
2003年 1.1
細々と修正・追加
1.1?
2005年 2.0
partial class、ジェネ
リックス、Nullable
2.0
大幅バージョンアップ
2.0
ジェネリックス、Nullable、
64bit
2006年 3.0
WPF、WCF、WF
2007年 3.0
var、拡張メソッド、
ラムダ式
3.5
LINQ
2010年 4.0
dynamic
4
DLR
4
dynamic、チューニング?
2012年 5.0
await/async
4.5 4.5
WinRT、チューニング?
• 参照型と値型
– 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)
• unsafe
– メソッドにつける、ブロックで囲む
– コンパイラに /unsafe が必要
– ポインタが使える
– fixed
– stackalloc
• checked、unchecked
– unchecked { var i = (uint)-1 };
C# と .NET Framework の基本機能
ピックアップ (4)

More Related Content

PDF
Multiple dispatch and Julia
PDF
真Intermediate languageのキホン
PDF
プログラミング.NET Framework出版記念座談会
PDF
LibreOfficeの品質向上活動について
PDF
MfcLightToolkit for small MFC apps
PPTX
2014 08-30 life with roslyn
PDF
Nespのコード生成
PDF
W3C yokohama-forum-2012-03-kojiishi
Multiple dispatch and Julia
真Intermediate languageのキホン
プログラミング.NET Framework出版記念座談会
LibreOfficeの品質向上活動について
MfcLightToolkit for small MFC apps
2014 08-30 life with roslyn
Nespのコード生成
W3C yokohama-forum-2012-03-kojiishi

Viewers also liked (8)

PPTX
C#のすばらしさを語る会用
PPTX
業務系SEの今後について
PPTX
Cしゃーぷができるまで
PPTX
難しいよね、コードレビュー
PDF
コードレビューのススメ
PDF
良質なコードを高速に書くコツ
PDF
デキるプログラマだけが知っているコードレビュー7つの秘訣
PDF
オブジェクト指向できていますか?
C#のすばらしさを語る会用
業務系SEの今後について
Cしゃーぷができるまで
難しいよね、コードレビュー
コードレビューのススメ
良質なコードを高速に書くコツ
デキるプログラマだけが知っているコードレビュー7つの秘訣
オブジェクト指向できていますか?
Ad

Similar to C# と .NET と ・・・ (20)

PPTX
TypeScriptでCLIアプリケーション開発
PPTX
自己紹介とC# Devkitについて.pptx
PDF
Silverlight+COMにチャレンジ
PPTX
Visual Studio Code でプログラムをデバッグしよう!
PPTX
Net fringejp2016
PDF
Introduction to VSCode
PDF
Visual Studioで始めるTypeScript開発入門
PDF
DLR言語によるSilverlightプログラミング
PPTX
電光掲示板のコード C#で画像処理
PPTX
C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~
PDF
Roslynで体験してみるC#スクリプト #cs_fukuoka
PDF
.NET Coreとツール類の今
PPTX
オレたちとVisual Studioとの関係を話そう
PPTX
The seminar of asp.net at 201908 sakurug
PDF
30分で分かる!OSの作り方 ver.2
PDF
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
PPTX
Xamarinでも有能な .NET Core
PDF
C++ REST SDKを使ってWebサービスを利用する
PDF
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
PDF
OpenJDK コミュニティに参加してみよう #jjug
TypeScriptでCLIアプリケーション開発
自己紹介とC# Devkitについて.pptx
Silverlight+COMにチャレンジ
Visual Studio Code でプログラムをデバッグしよう!
Net fringejp2016
Introduction to VSCode
Visual Studioで始めるTypeScript開発入門
DLR言語によるSilverlightプログラミング
電光掲示板のコード C#で画像処理
C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~
Roslynで体験してみるC#スクリプト #cs_fukuoka
.NET Coreとツール類の今
オレたちとVisual Studioとの関係を話そう
The seminar of asp.net at 201908 sakurug
30分で分かる!OSの作り方 ver.2
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Xamarinでも有能な .NET Core
C++ REST SDKを使ってWebサービスを利用する
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
OpenJDK コミュニティに参加してみよう #jjug
Ad

More from ShinichiAoyagi (15)

PPTX
WPF & Windows Forms on .NET Core 3.0
PPTX
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
PPTX
Visual Studio 2015 + Xamarin
PPTX
Xamarin+MVVMCross のあれこれ
PPTX
うるう秒とタイムゾーン
PPTX
XAML 入門
PPTX
LINQ 概要 + 結構便利な LINQ to XML
PPTX
LINQ概要
PPTX
LINQ の概要とかもろもろ
PPTX
Windows ストアーアプリで SQLite を使ってみよう
PPTX
WindowsストアーアプリでSharpDXを動かしてみる
PPT
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
PPTX
メトロスタイルアプリ開発 最初の一歩
PPTX
メトロスタイルってなに?
PPT
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
WPF & Windows Forms on .NET Core 3.0
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
Visual Studio 2015 + Xamarin
Xamarin+MVVMCross のあれこれ
うるう秒とタイムゾーン
XAML 入門
LINQ 概要 + 結構便利な LINQ to XML
LINQ概要
LINQ の概要とかもろもろ
Windows ストアーアプリで SQLite を使ってみよう
WindowsストアーアプリでSharpDXを動かしてみる
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
メトロスタイルアプリ開発 最初の一歩
メトロスタイルってなに?
ついに日本上陸!Windows Phone 7.5 アプリケーション開発

C# と .NET と ・・・

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