SlideShare a Scribd company logo
プログラミング
.NET Framework
第4版
岩永 信之
プログラミング

.NET Framework
第4版

• 原著「CLR via C# Forth Edition」

• CLRの中身
• .NETプログラムの内部動作の仕組み
プログラミング

.NET Framework
・・・
C#
コンパイラ

.NET Framework
標準クラス
ライブラリ

VB
コンパイラ

その他の
コンパイラ

中間言語(IL)コード
仮想実行環境
CLR
ネイティブ コード

この辺りが
主役の本
普段、あまり意識しない
直接触れない基礎
Jeffrey Richiter(原著作者)
• 「Windows Via C/C++」
「Advanced Windows」なども執筆

• Windowsのスレッド周りとかかなり詳しい

• Windows/.NET系のコンサル

• CLRの設計にもかかわる
• C# 5.0のasync/awaitのアイディアの原型も
.NETを学ぶ
• .NETの基礎を押さえたい人
• ステップアップしたい人
• 基礎知識はデバッグや障害対応で役立つ
• 性能面や安全面でもよりよいコードを

• JavaやRubyなど、他の環境をガッツリやって
いた人が.NETを使うことになった時などにも
.NETに学ぶ
• .NETには、アプリ開発に必要ないろいろ詰まっ
てる
• .NET(というか仮想実行環境/フレームワーク)を
使わずに自前実装が必要なことにぶつかったとして
も、かなり役立つ知識

• そういう、.NETの中身の詳細が本書に
例えば本書には
• CLRの実行モデル
• メタデータの構造、型システムの詳細
• コア機能
• 例外、GC、AppDomain

• CLRをネイティブ アプリでホストするには
• 非同期処理
「第4版」
• 要は、.NET 4 → .NET 4.5 対応
• .NET 4.5 対応のうち、
本書(というかCLR)的に関連深いのは:
• TypeInfo型とType型
• WinRT
• async/await
訳本に関して

翻訳のレベルかなり上がった自信があります!
書籍紹介まとめと、残り
• .NETからいろいろ学んでください
• 本書は.NETの内部に非常に詳しい

• 座談会、お楽しみに!
• このセッションの残りは:
• 「第4版」での追加部分
• というか、.NET 4 → .NET 4.5 追加部分
• TypeInfo、WinRT、async/await
Reflection
Type型とTypeInfo型
Reflection APIの変更
• Type型からTypeInfo型を分離

• .NET 4.5では後方互換性のために“追加”
• .NET Core(ストア アプリ向け)では破壊的変更
• ポータブルな実装したければ、新APIの利用が必要

どうしてこうなったかというと…
• 名前空間整理
(SystemとSystem.Reflection)
• 2種類の型情報
(TypeDefとTypeRef)
型情報の使いどころ
Type型(System)
の基本情報

型の判定
is演算子

as演算子

x.GetType() == typeof(T)

メンバー情報の取得
DeclaredMembers
BaseType
ImplementedInterfaces

リフレクション情報
(System.Reflection)
動的実行
Reflection.Emit
DynamicInvoke
Experssion.Compile
2種類の型情報
• IL的に、型情報テーブルは2種類(2段階)ある
TypeDef

TypeRef

型の具体的な定義

型を参照するための情報

型を定義したアセンブリが
ないと取り出せない情報
• 名前、名前空間
• メンバー情報
• 継承階層の情報

型を定義したアセンブリが
なくても知れる情報
• どこで定義されているか
• 名前、名前空間
少ない情報
緩い制約
2種類の型情報
• IL的に、型情報テーブルは2種類(2段階)ある
TypeDef

TypeRef

型の具体的な定義

型を参照するための情報

型を定義したアセンブリが
ないと取り出せない情報
•
• 名前、名前空間
• メンバー情報
•
• 継承階層の情報

型を定義したアセンブリが
なくても知れる情報
プログラムを実行する
• どこで定義されているか
ためにはTypeDefが必要
• 名前、名前空間
アセンブリが欠けてい
ると実行不能
2種類の型情報
• IL的に、型情報テーブルは2種類(2段階)ある
TypeDef

TypeRef

型の具体的な定義

型を参照するための情報

型を定義したアセンブリが
ないと取り出せない情報
• 名前、名前空間
参照先のアセンブリが
• メンバー情報
欠けていても、どこの
• 継承階層の情報
何を参照しているか
名前くらいはわかる

型を定義したアセンブリが
なくても知れる情報
• どこで定義されているか
• 名前、名前空間
.NET 4以前のType型
全部Type型でやってた
• Type型を得るためにはTypeDef必須
• 定義側アセンブリ必須
• 参照側アセンブリ単体で読めない
• 静的解析ツールとかで困ることがある

• Type型からFieldInfoなどを取る
• System名前空間がSystem.Reflection名前空間に
結構大きく依存
.NET 4.5以降のType型
Type型とTypeInfo型に分離
• Type型(System名前空間)
=TypeRef
定義側アセンブリ
不要

System.Reflection
名前空間への依存低減

• TypeInfo型(System.Reflection名前空間)
=TypeDef
• TypeInfo型からFieldInfoなどを取る
Reflectionまとめ
• Type型からTypeInfo型を分離
• System.Reflection名前空間への依存低減
• TypeRef情報だけを取れるように
• 静的解析ツールなどで有用

• .NET 4以前 → .NET Core移行では注意が必要
• 破壊的変更になっている
• (.NET 4.5の場合は単なる追加)
WinRT
言語プロジェクション
WinRT (Windows Runtime)
• 関連する技術/スタイルはいろいろあるものの
Windows APIを一新

XAML

Windows ストア アプリ

Immersive UI

MS Design Style

C++ ⇔ .NET ⇔ JavaScript相互運用
.NET Core (ストア アプリ向け.NETライブラリ)
C++/CX

WinMD

言語プロジェクション
WinRT (Windows Runtime)
• CLR (本書)的に関係するのは
Windows APIを一新

XAML

Windows ストア アプリ

Immersive UI

MS Design Style

C++ ⇔ .NET ⇔ JavaScript相互運用
この部分
.NET Core (ストア アプリ向け.NETライブラリ)
C++/CX

WinMD

言語プロジェクション
CLRから見たWinRT
• WinMD
• C++/CXをコンパイルすると自動で作られる
メタデータ + 言語プロジェクション
• ほぼ、RCW ※
• .NETのメタデータとフォーマット同じ
• データ形式的に、ほんとRCW

• つまるところ
• C++から見て: TypeLibary書くより楽
• .NETから見て: 昔のCOMより参照が楽

※ Runtime

Callable Wrapper: .NETからCOMを呼ぶためのラッパー
言語プロジェクション
• 一部の型は別の型に置き替える

• C++から見るとIVector<T>
.NETから見るとIList<T>
みたいな
• ネイティブ/.NET/JavaScriptで、それぞれの流儀で
プログラムを書けるように
2種類のプロジェクション
• CLRプロジェクション

• CLRが内部的に勝手に置き替える
• IVector<T> ⇔ IList<T>とか

• フレームワーク プロジェクション
• 変換ライブラリが標準提供されているだけ
• そのライブラリの呼び出しは手動で
• AsTask拡張メソッドとか
CLRプロジェクションの例
.NETの型
IList<T>
IReadOnlyList<T>

WinRTの型
IVector<T>
IVectorView<T>

IEnumerable<T>
IDictionary<T>

IIteratable<T>
IMap<T>

この他、Uri型とかTimeSpan型は、
.NET側: System名前空間
WinRT側: Windows.Foundation名前空間
に相互変換される
仕組み: IL Tokenタイプ
• Token: 型/メンバーを識別するための4byte整数
• そのうち1byteは、TypeDef/TypeRefのどちらのテー
ブルを探せばいいか、タイプ判定に使う
• (残り3byteはテーブル内のインデックス)

• .NET 4.5で、これに、CLRプロジェクション用
のタイプが増えたみたい
フレームワーク プロジェク
ション
• System.Runtime.WindowsRuntime.dll内で
定義されたメソッドで明示的に型変換
OpenStreamForReadAsync
AsInputStream
Stream
AsStream
AsTask
Task
AsAsyncAction
AsAsyncOperation

IStorageFile
IStream

IAsyncAction
IAsyncOperation

要は単なるライブラリ。本書的には関連薄い部分
WinRTまとめ
• WinRT、CLR的に関係あるのは
• WinMD、CLRプロジェクション

• WinMD
• 要はRCW自動生成

• CLRプロジェクション
• CLRが内部的に一部の型を置き替え
async/await
Jeffrey Richiterといえば非同期
Jeffrey Richter
• 原著作者、スレッド/非同期が大好き

• Advanced Windows時代から
• 的な「非同期ロック待ち」がらみの特許取ってる
(マイクロソフトに売却済み)
• SemaphoreSlim.WaitAsyncがこのアイディアに似た実装

• C# 5.0のasync/awaitの設計にも少し関わってるっぽ
い
AsyncEnumerator
• 第3版までは作者のオレオレasyncライブラリの
解説が入ってた
• yield returnベースで現在のasync/await的なものを
実現
• 第4版ではasync/awaitの説明に置き替え
async/awaitの内部実装
• イテレーター(yield)に似たコード生成
• Awaitable/Awaiterパターン
イテレーター
• 中断と再開

class MethodEnumerator : IEnumerator<int>
{
public int Current { get; private set; }
private int _state = 0;
public bool MoveNext()
{
switch (_state)
{
case 0:

IEnumerable<int> Method()
{
yield return 1;

Current = 1;
_state = 1;
return true;
case 1:
Current = 2;
_state = 2;
return true;
case 2:

yield return 2;

}
}

}

}

default:
return false;
イテレーター
• 中断と再開

class MethodEnumerator : IEnumerator<int>
{
public int Current { get; private set; }
private int _state = 0;
public bool MoveNext()
{
switch (_state)
{
case 0:

状態の記録

Current = 1;
Current = 1;
_state = 1;
_state = 1;
return true;
中断
return 1:
case true;
case 1: = 2;
Current
_state = 2;
return true; 再開用のラベル

IEnumerable<int> Method()
{
yield return 1;

yield return 2;

case 2:
}
}

}

}

default:
return false;
awaitの展開結果(コンセプ
ト)
• コンセプト的には イテレーター +
ContinueWith
状態の記録
async Task<int> Method()
{
var x = await task1;
var y = await task2;
}

_state = 1;
if (!task1.IsCompleted)
{
task1.ContinueWith(a);
return;
中断
}
再開用のラベル
case 1:
var x = task1.Result;

結果の受け取り
awaitの展開結果
• 実際はもう少し複雑

• Awaiterというものを介していたり(Awaitableパ
_state = 1;
ターン)
var awaiter1 = task1.GetAwaiter();
if (!awaiter1.IsCompleted)
{
awaiter1.OnCompleted(a); •
return;
}
•
case 1:
var x = awaiter1.GetResult();

こいつが同期コンテキスト
を拾い上げていたりする
Awaiterを自作することで、
awaitの挙動を変更可能
• Task以外もawait可能
async/awaitまとめ
• C# 5.0のasync/await
• イテレーター(yield)に似たコード生成
• Awaitable/Awaiter

• Jeffey Richiterといえばスレッド/非同期
• async/awaitに近いコンセプトのライブラリ作って
公開してた(AsyncEnumerator)
まとめ
• プログラミング.NET Framework第4版
• .NETの内側

• より深い知識でステップアップを

• 第4版(.NET 4 → .NET 4.5)では
• TypeInfo型
• WinRT
• async/await
など

• 訳本
• 翻訳のクオリティかなり上がったと思います!

More Related Content

What's hot

.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
信之 岩永
 
Net fringejp2016
Net fringejp2016Net fringejp2016
Net fringejp2016
Yusuke Fujiwara
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
信之 岩永
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
 
C# 3.0 以降
C# 3.0 以降C# 3.0 以降
C# 3.0 以降
Fujio Kojima
 
LLPML
LLPMLLLPML
LLPML
7shi
 
MfcLightToolkit for small MFC apps
MfcLightToolkit for small MFC appsMfcLightToolkit for small MFC apps
MfcLightToolkit for small MFC apps
Takaaki Suzuki
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
Kazunori Hamamoto
 
C# design note sep 2014
C# design note sep 2014C# design note sep 2014
C# design note sep 2014
信之 岩永
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
 
最速C# 7.x
最速C# 7.x最速C# 7.x
最速C# 7.x
Yamamoto Reki
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
信之 岩永
 
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
mametter
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
 
Phpstormちょっといい話
Phpstormちょっといい話Phpstormちょっといい話
Phpstormちょっといい話
Hisateru Tanaka
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
Wooram Yang
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
信之 岩永
 

What's hot (20)

.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
 
Net fringejp2016
Net fringejp2016Net fringejp2016
Net fringejp2016
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 
C# 3.0 以降
C# 3.0 以降C# 3.0 以降
C# 3.0 以降
 
LLPML
LLPMLLLPML
LLPML
 
MfcLightToolkit for small MFC apps
MfcLightToolkit for small MFC appsMfcLightToolkit for small MFC apps
MfcLightToolkit for small MFC apps
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
 
C# design note sep 2014
C# design note sep 2014C# design note sep 2014
C# design note sep 2014
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
最速C# 7.x
最速C# 7.x最速C# 7.x
最速C# 7.x
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
 
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
Phpstormちょっといい話
Phpstormちょっといい話Phpstormちょっといい話
Phpstormちょっといい話
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
 
Tr18015
Tr18015Tr18015
Tr18015
 

Viewers also liked

PodcastをSkype経由で録音
PodcastをSkype経由で録音PodcastをSkype経由で録音
PodcastをSkype経由で録音
ebina yohichi
 
C#マスコット(公開用)
C#マスコット(公開用)C#マスコット(公開用)
C#マスコット(公開用)
信之 岩永
 
Electron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリElectron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリ
祐磨 堀
 
要件を捨てて検証に出よう。賃貸情報サイト"カリル"での 仮説検証型システム開発 | Livesense Inc.
要件を捨てて検証に出よう。賃貸情報サイト"カリル"での 仮説検証型システム開発 | Livesense Inc.要件を捨てて検証に出よう。賃貸情報サイト"カリル"での 仮説検証型システム開発 | Livesense Inc.
要件を捨てて検証に出よう。賃貸情報サイト"カリル"での 仮説検証型システム開発 | Livesense Inc.
Livesense Inc.
 
Heliumエンジンの設計と実装
Heliumエンジンの設計と実装Heliumエンジンの設計と実装
Heliumエンジンの設計と実装
DADA246
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Guerrilla
 
Electronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作ったElectronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作った
Hayato Koriyama
 
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
Shinichi Hirauchi
 
WPF4.5入門
WPF4.5入門WPF4.5入門
WPF4.5入門
一希 大田
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
Kazuhiro Sera
 
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
Taketo Sano
 
XAML入門
XAML入門XAML入門
XAML入門
一希 大田
 
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero DawnPlayer Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
Guerrilla
 
Xamarin.forms入門
Xamarin.forms入門Xamarin.forms入門
Xamarin.forms入門
一希 大田
 

Viewers also liked (16)

PodcastをSkype経由で録音
PodcastをSkype経由で録音PodcastをSkype経由で録音
PodcastをSkype経由で録音
 
C#マスコット(公開用)
C#マスコット(公開用)C#マスコット(公開用)
C#マスコット(公開用)
 
Electron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリElectron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリ
 
要件を捨てて検証に出よう。賃貸情報サイト"カリル"での 仮説検証型システム開発 | Livesense Inc.
要件を捨てて検証に出よう。賃貸情報サイト"カリル"での 仮説検証型システム開発 | Livesense Inc.要件を捨てて検証に出よう。賃貸情報サイト"カリル"での 仮説検証型システム開発 | Livesense Inc.
要件を捨てて検証に出よう。賃貸情報サイト"カリル"での 仮説検証型システム開発 | Livesense Inc.
 
Heliumエンジンの設計と実装
Heliumエンジンの設計と実装Heliumエンジンの設計と実装
Heliumエンジンの設計と実装
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
 
Electronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作ったElectronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作った
 
20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
 
WPF4.5入門
WPF4.5入門WPF4.5入門
WPF4.5入門
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
 
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
 
XAML入門
XAML入門XAML入門
XAML入門
 
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero DawnPlayer Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
 
Xamarin.forms入門
Xamarin.forms入門Xamarin.forms入門
Xamarin.forms入門
 

Similar to プログラミング .NET Framework 第4版

プログラミングNet framework3のお題
プログラミングNet framework3のお題プログラミングNet framework3のお題
プログラミングNet framework3のお題
Kazushi Kamegawa
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
hakugakucafe
 
ELFの動的リンク
ELFの動的リンクELFの動的リンク
ELFの動的リンク
7shi
 
Hello ".NET" World
Hello ".NET" WorldHello ".NET" World
Hello ".NET" World
将 高野
 
Ssmjp20131031
Ssmjp20131031Ssmjp20131031
Ssmjp20131031
Takashi Naito
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
Yoshihisa Ozaki
 
研究生のためのC++ no.6
研究生のためのC++ no.6研究生のためのC++ no.6
研究生のためのC++ no.6
Tomohiro Namba
 
200923 01jp
200923 01jp200923 01jp
200923 01jp
openrtm
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
慎平 仁藤
 
LINQ to なにがし
LINQ to なにがしLINQ to なにがし
LINQ to なにがし
Yuta Matsumura
 
ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視
npsg
 
Rust samurai lightning talk
Rust samurai lightning talkRust samurai lightning talk
Rust samurai lightning talk
Naruto TAKAHASHI
 
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
shozon
 
今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門
VirtualTech Japan Inc.
 
deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracing
Takayoshi Tanaka
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
 
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版
Takuya Matsunaga
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
 

Similar to プログラミング .NET Framework 第4版 (20)

プログラミングNet framework3のお題
プログラミングNet framework3のお題プログラミングNet framework3のお題
プログラミングNet framework3のお題
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
ELFの動的リンク
ELFの動的リンクELFの動的リンク
ELFの動的リンク
 
Hello ".NET" World
Hello ".NET" WorldHello ".NET" World
Hello ".NET" World
 
Ssmjp20131031
Ssmjp20131031Ssmjp20131031
Ssmjp20131031
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
 
研究生のためのC++ no.6
研究生のためのC++ no.6研究生のためのC++ no.6
研究生のためのC++ no.6
 
200923 01jp
200923 01jp200923 01jp
200923 01jp
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
 
LINQ to なにがし
LINQ to なにがしLINQ to なにがし
LINQ to なにがし
 
ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視
 
Rust samurai lightning talk
Rust samurai lightning talkRust samurai lightning talk
Rust samurai lightning talk
 
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
 
今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門
 
deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracing
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版Dalvikバイトコードリファレンスの読み方 改訂版
Dalvikバイトコードリファレンスの読み方 改訂版
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
 

More from 信之 岩永

YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話
信之 岩永
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話
信之 岩永
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
信之 岩永
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
信之 岩永
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
 
それっぽく、適当に
それっぽく、適当にそれっぽく、適当に
それっぽく、適当に
信之 岩永
 
Modern .NET
Modern .NETModern .NET
Modern .NET
信之 岩永
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
信之 岩永
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4
信之 岩永
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
 
.NET vNext
.NET vNext.NET vNext
.NET vNext
信之 岩永
 
Coding Interview
Coding InterviewCoding Interview
Coding Interview
信之 岩永
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
信之 岩永
 
Anders Hejlsberg Q & A
Anders Hejlsberg Q & AAnders Hejlsberg Q & A
Anders Hejlsberg Q & A
信之 岩永
 

More from 信之 岩永 (15)

YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
 
それっぽく、適当に
それっぽく、適当にそれっぽく、適当に
それっぽく、適当に
 
Modern .NET
Modern .NETModern .NET
Modern .NET
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
.NET vNext
.NET vNext.NET vNext
.NET vNext
 
Coding Interview
Coding InterviewCoding Interview
Coding Interview
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
Anders Hejlsberg Q & A
Anders Hejlsberg Q & AAnders Hejlsberg Q & A
Anders Hejlsberg Q & A
 

Recently uploaded

Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
Natsutani Minoru
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
ARISE analytics
 
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Shinichi Hirauchi
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
Toru Tamaki
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
Sony - Neural Network Libraries
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
CRI Japan, Inc.
 
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
Sony - Neural Network Libraries
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo Lab
 
20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
Ayachika Kitazaki
 
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
たけおか しょうぞう
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo Lab
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
Toru Tamaki
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
chisatotakane
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo Lab
 

Recently uploaded (15)

Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 
Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)Imitation learning for robotics 勉強会資料(20240701)
Imitation learning for robotics 勉強会資料(20240701)
 
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf
 
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話Developer IO 2024 Odyssey  SAMを応用したコンピュータビジョンの話
Developer IO 2024 Odyssey SAMを応用したコンピュータビジョンの話
 
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
論文紹介:BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sen...
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
 
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログLoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
LoRaWAN AI Image Sensorエンドデバイス AIG01カタログ
 
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
【AI論文解説】クラスタリングベースアプローチによる大規模データセット自動キュレーション
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
 
20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf20240717_IoTLT_vol113_kitazaki_v1___.pdf
20240717_IoTLT_vol113_kitazaki_v1___.pdf
 
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ..."ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
 
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
論文紹介:Task-aligned Part-aware Panoptic Segmentation through Joint Object-Part ...
 
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
最速の組織を目指して全社で大規模スクラムを導入してみた話 #dxd2024 #medicalforce
 
Matsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit IntroductionMatsuo-Iwasawa Lab. | Research unit Introduction
Matsuo-Iwasawa Lab. | Research unit Introduction
 

プログラミング .NET Framework 第4版