内容紹介
C#プログラミングのバイブル改訂!
C# 5.0対応とVisual Studioの新バージョンのリリースに合わせて全面改訂されたロングセラーの第7版。C# 5.0で新たに導入された非同期処理などの新機能と、第6版にはなかったWindows 8アプリ、Reactive Extentions(Rx)、XAMLについてもカバー。言語仕様から応用にいたるまで、必要な情報がすべて1冊にまとまっています。C#の構文、クラスとオブジェクト、継承とポリモフィズム、演算子のオーバーロード、構造体、インターフェイス、配列とインデクサ、コレクション、文字列操作と正規表現、例外処理、Windowsフォームの作成などを扱います。C#を体系的に網羅したC#プログラマのバイブル待望の改訂版。
目次
詳細目次
訳者まえがき
まえがき
1章 C#の基礎
1.1 なぜC#なのか?
1.2 なぜC#ではないのか?
1.3 C#の主な特徴
1.3.1 マネージコードとCLR
1.3.2 専用よりも汎用を
1.3.3 非同期プログラミング
1.4 Visual Studio
1.5 簡単なプログラムの分析
1.5.1 既存のソリューションへのプロジェクトの追加
1.5.2 他からのプロジェクトの参照
1.5.3 単体テストの記述
1.5.4 名前空間
1.5.5 クラス
1.5.6 プログラムエントリポイント
1.5.7 単体テスト
1.6 まとめ
2章 C#の基本的なコーディング
2.1 ローカル変数
2.1.1 スコープ
2.2 ステートメントと式
2.2.1 ステートメント
2.2.2 式
2.3 コメントと空白文字
2.4 プリプロセッサディレクティブ
2.4.1 コンパイルシンボル
2.4.2 #errorと#warning
2.4.3 #line
2.4.4 #pragma
2.4.5 #regionと#endregion
2.5 組み込みデータ型
2.5.1 数値型
2.5.2 ブール型
2.5.3 文字列と文字
2.5.4 オブジェクト
2.6 演算子
2.7 フロー制御
2.7.1 ifステートメントにおけるブール決定
2.7.2 switchステートメントの複数選択
2.7.3 ループ:whileとdo
2.7.4 C言語風のforループ
2.7.5 foreachループによるコレクションの繰り返し処理
2.8 まとめ
3章 型
3.1 クラス
3.1.1 静的メンバ
3.1.2 静的クラス
3.1.3 参照型
3.2 構造体(Struct)
3.2.1 値型を書くべき場合
3.3 メンバ
3.3.1 フィールド
3.3.2 コンストラクタ
3.3.3 メソッド
3.3.4 プロパティ
3.3.5 インデクサ
3.3.6 演算子
3.3.7 イベント
3.3.8 入れ子型
3.4 インタフェース
3.5 列挙(enum)
3.6 その他の型
3.6.1 匿名型
3.7 部分型とメソッド
3.8 まとめ
4章 ジェネリック型
4.1 ジェネリック型
4.2 制約
4.2.1 型制約
4.2.2 参照型制約
4.2.3 値型制約
4.2.4 複数の制約
4.3 ゼロ系の値
4.4 ジェネリックメソッド
4.4.1 型推論
4.5 ジェネリックの内側
4.6 まとめ
5章 コレクション
5.1 配列
5.1.1 配列初期化
5.1.2 キーワードparamsによる可変個引数カウント
5.1.3 検索とソート
5.1.4 多次元配列
5.1.5 コピーとサイズ変更
5.2 List
5.3 リストインタフェースとシーケンスインタフェース
5.4 リストとシーケンスを実装する
5.4.1 イテレータ
5.4.2 Collection
5.4.3 ReadOnlyCollection
5.5 ディクショナリ
5.5.1 ソート済みディクショナリ
5.6 集合
5.7 キューとスタック
5.8 リンクリスト
5.9 並行コレクション
5.10 タプル
5.11 まとめ
6章 継承
6.1 継承と型変換
6.2 インタフェース継承
6.3 ジェネリック
6.3.1 共変性と反変性
6.4 System.Object
6.4.1 すべてのクラスで利用可能なobjectクラスのメソッド
6.5 アクセシビリティと継承
6.6 Virtualメソッド
6.6.1 抽象メソッド
6.7 sealedメソッドとクラス
6.8 基底メンバへのアクセス
6.9 継承とインスタンスの構築
6.10 特別な基底型
6.11 まとめ
7章 オブジェクトの生存期間
7.1 GC(ガベージコレクション)
7.1.1 到達可能性の決定
7.1.2 GCの不慮の死
7.1.3 弱参照
7.1.4 メモリの回収
7.1.5 GCモード
7.1.6 コンパクションの不慮の死
7.1.7 強制GC
7.2 デストラクタとファイナライゼーション
7.2.1 重大なファイナライザ
7.3 IDisposable
7.3.1 Disposeの呼び出しが不要な場合
7.4 ボックス化
7.4.1 Nullableのボックス化
7.5 まとめ
8章 例外
8.1 例外の発生源
8.1.1 APIからの例外
8.1.2 自分のコードからの例外
8.1.3 ランタイムによって検出される失敗
8.2 例外処理
8.2.1 例外オブジェクト
8.2.2 複数catchブロック
8.2.3 tryブロックのネスト
8.2.4 finallyブロック
8.3 例外をスローする
8.3.1 例外を再スロー
8.3.2 素早く失敗させる
8.4 例外型
8.4.1 カスタム例外
8.5 未処理例外
8.5.1 デバッグと例外
8.6 非同期例外
8.7 まとめ
9章 デリゲート、ラムダ、イベント
9.1 デリゲート型
9.1.1 デリゲートの生成
9.1.2 マルチキャストデリゲート
9.1.3 デリゲートの呼び出し
9.1.4 共通デリゲート型
9.1.5 型互換性
9.1.6 構文の裏側
9.2 インラインメソッド
9.2.1 キャプチャされた変数
9.2.2 ラムダと式ツリー
9.3 イベント
9.3.1 標準的なイベントデリゲートパターン
9.3.2 追加と削除を行うメソッドのカスタマイズ
9.3.3 イベントとガベージコレクタ
9.3.4 イベントvs.デリゲート
9.4 デリゲートvs.インタフェース
9.5 まとめ
10章 LINQ
10.1 クエリ式
10.1.1 クエリ式はどのように展開されるか
10.1.2 クエリ式のサポート
10.2 遅延評価
10.3 LINQ、ジェネリックとIQueryable
10.4 標準LINQ演算子
10.4.1 フィルタ
10.4.2 Select
10.4.3 SelectMany
10.4.4 並べ替え
10.4.5 コンテインメントテスト
10.4.6 特定の項目と部分範囲
10.4.7 集約
10.4.8 集合演算子
10.4.9 シーケンス全体を扱ったり、順序を維持するための演算子
10.4.10 グループ化
10.4.11 Join
10.4.12 変換
10.5 シーケンスの生成
10.6 他のLINQの実装
10.6.1 Entity Framework
10.6.2 LINQ to SQL
10.6.3 WCFデータサービスクライアント
10.6.4 Parallel LINQ(PLINQ)
10.6.5 LINQ to XML
10.6.6 Reactive Extensions
10.7 まとめ
11章 Rx(Reactive Extensions)
11.1 Rxと.NETのバージョン
11.2 基本的なインタフェース
11.2.1 IObserver
11.2.2 IObservable
11.3 デリゲートのプッシュとサブスクライブ
11.3.1 デリゲートを使ってオブザーバブルソースを作成する
11.3.2 デリゲートを使ってオブザーバブルソースをサブスクライブする
11.4 シーケンスビルダ
11.4.1 Empty
11.4.2 Never
11.4.3 Return
11.4.4 Throw
11.4.5 Range
11.4.6 Repeat
11.4.7 Generate
11.5 LINQクエリ
11.5.1 グループ化演算子
11.5.2 Join演算子
11.5.3 SelectMany演算子
11.5.4 集約と単一の値を返す演算子
11.5.5 Concat演算子
11.6 Rxクエリ演算子
11.6.1 Merge
11.6.2 Windowing演算子
11.6.3 Scan演算子
11.6.4 Amb演算子
11.6.5 DistinctUntilChanged
11.7 スケジューラ
11.7.1 スケジューラの指定
11.7.2 あらかじめ組み込まれているスケジューラ
11.8 サブジェクト
11.8.1 Subject
11.8.2 BehaviorSubject
11.8.3 ReplaySubject
11.8.4 AsyncSubject
11.9 変換
11.9.1 IEnumerable
11.9.2 .NETイベント
11.9.3 非同期API
11.10 時間を考慮した演算子
11.10.1 Interval
11.10.2 Timer
11.10.3 Timestamp
11.10.4 TimeInterval
11.10.5 Throttle
11.10.6 Sample
11.10.7 Timeout
11.10.8 Windowing演算子
11.10.9 Delay
11.10.10 DelaySubscription
11.11 まとめ
12章 アセンブリ
12.1 Visual Studioとアセンブリ
12.2 アセンブリの構造
12.2.1 .NETメタデータ
12.2.2 リソース
12.2.3 複数ファイルのアセンブリ
12.2.4 PEのその他の特徴
12.3 型の一意性
12.4 アセンブリのロード
12.4.1 明示的なロード
12.4.2 グローバルアセンブリキャッシュ
12.5 アセンブリ名
12.5.1 厳密名
12.5.2 バージョン
12.5.3 カルチャ
12.5.4 プロセッサアーキテクチャ
12.6 ポータブルクラスライブラリ
12.7 パッケージ化による配布
12.7.1 Windows 8 UIスタイルアプリ
12.7.2 ClickOnceとXBAP
12.7.3 SilverlightとWindows Phoneアプリ
12.8 保護
12.9 まとめ
13章 リフレクション
13.1 リフレクション型
13.1.1 アセンブリ
13.1.2 Module
13.1.3 MemberInfo
13.1.4 TypeとTypeInfo
13.1.5 MethodBase、ConstructorInfo、MethodInfo
13.1.6 ParameterInfo
13.1.7 FieldInfo
13.1.8 PropertyInfo
13.1.9 EventInfo
13.2 リフレクションコンテキスト
13.3 まとめ
14章 動的型付け
14.1 動的な型
14.2 dynamicと相互運用性
14.2.1 Silverlightとスクリプト実行可能なオブジェクト
14.2.2 動的な.NET言語
14.3 Dynamicの内側
14.3.1 dynamic型の制約
14.3.2 動的カスタムオブジェクト
14.3.3 ExpandoObject
14.4 dynamicの限界
14.5 まとめ
15章 属性
15.1 属性の適用
15.1.1 属性ターゲット
15.1.2 コンパイラが取り扱う属性
15.1.3 CLRで取り扱う属性
15.2 カスタム属性の定義と消費
15.2.1 属性の型
15.2.2 属性の取得
15.3 まとめ
16章 ファイルおよびストリーム
16.1 Streamクラス
16.1.1 位置およびシーク
16.1.2 フラッシュ
16.1.3 コピー
16.1.4 データ長
16.1.5 ストリームの破棄
16.1.6 非同期操作
16.1.7 具体的なストリーム型
16.2 Windows 8とIRandomAccessStream
16.3 テキスト用の型
16.3.1 TextReaderおよびTextWriter
16.3.2 具体的な読み取り型および書き込み型
16.3.3 エンコーディング
16.4 ファイルとディレクトリ
16.4.1 FileStreamクラス
16.4.2 Fileクラス
16.4.3 Directoryクラス
16.4.4 Pathクラス
16.4.5 FileInfo、DirectoryInfo、FileSystemInfo
16.4.6 特別なフォルダ
16.5 シリアル化
16.5.1 BinaryReaderとBinaryWriter
16.5.2 CLRシリアル化
16.5.3 データコントラクトシリアル化
16.5.4 XmlSerializer
16.6 まとめ
17章 マルチスレッド
17.1 スレッド
17.1.1 スレッド、変数、共有状態
17.1.2 Threadクラス
17.1.3 スレッドプール
17.1.4 スレッドアフィニティとSynchronizationContext
17.2 同期
17.2.1 Monitorとlockキーワード
17.2.2 SpinLock
17.2.3 読み取り/書き込みロック
17.2.4 イベントオブジェクト
17.2.5 Barrier
17.2.6 CountdownEvent
17.2.7 セマフォ
17.2.8 Mutex
17.2.9 Interlocked
17.2.10 遅延初期化
17.2.11 並列実行をサポートするその他のクラス
17.3 Task
17.3.1 TaskおよびTaskクラス
17.3.2 継続
17.3.3 スケジューラ
17.3.4 エラー処理
17.3.5 スレッドを使用しないタスクの作成
17.3.6 親子関係
17.3.7 複合タスク
17.4 その他の非同期パターン
17.5 キャンセル
17.6 並列性
17.6.1 Parallelクラス
17.6.2 並列LINQ
17.6.3 TPLデータフロー
17.7 まとめ
18章 非同期言語機能
18.1 非同期機能のキーワード:asyncおよびawait
18.1.1 実行コンテキストと同期コンテキスト
18.1.2 複数の操作およびループ
18.1.3 Taskを返す
18.1.4 ネストされたメソッドにasyncを指定する
18.2 awaitパターン
18.3 エラー処理
18.3.1 引数の検証
18.3.2 単一の例外と複数の例外
18.3.3 並列操作と例外の消失
18.4 まとめ
19章 XAML
19.1 XAMLベースのフレームワーク
19.1.1 WPF
19.1.2 Silverlight
19.1.3 Windows Phone 7
19.1.4 WindowsランタイムとWindow 8スタイルのUIのアプリケーション
19.2 XAMLの基礎
19.2.1 XAMLとXML名前空間
19.2.2 生成されたクラスとコードビハインド
19.2.3 子要素
19.2.4 プロパティ要素
19.2.5 イベント処理
19.2.6 スレッド処理
19.3 レイアウト
19.3.1 プロパティ
19.3.2 パネル
19.3.3 ScrollViewer
19.3.4 レイアウトイベント
19.4 コントロール
19.4.1 コンテンツコントロール
19.4.2 SliderおよびScrollBarコントロール
19.4.3 プログレスコントロール
19.4.4 リストコントロール
19.4.5 コントロールテンプレート
19.4.6 ユーザコントロール
19.5 テキスト
19.5.1 テキストの表示
19.5.2 テキスト編集
19.6 データバインディング
19.6.1 データテンプレート
19.7 グラフィック
19.7.1 図形
19.7.2 ビットマップ
19.7.3 メディア
19.8 スタイル
19.9 まとめ
20章 ASP.NET
20.1 Razor
20.1.1 式
20.1.2 フロー制御
20.1.3 コードブロック
20.1.4 コンテンツを明示的に指定する
20.1.5 Pageクラスおよびオブジェクト
20.1.6 その他のコンポーネントを使用する
20.1.7 レイアウトページ
20.1.8 スタートページ
20.2 Webフォーム
20.2.1 サーバサイドコントロール
20.2.2 式
20.2.3 コードブロック
20.2.4 ページ用の標準的なオブジェクト
20.2.5 ページ用のクラスおよびオブジェクト
20.2.6 その他のコンポーネントを使用する
20.2.7 マスターページ
20.3 MVC
20.3.1 一般的なMVCプロジェクトのレイアウト
20.3.2 モデルの作成
20.3.3 ビューの作成
20.3.4 コントローラーの作成
20.3.5 複数の入力値に対する処理
20.3.6 アクションリンクの生成
20.4 ルーティング
20.5 まとめ
21章 相互運用機能
21.1 ネイティブコードの呼び出し
21.1.1 マーシャリング
21.1.2 32ビットと64ビット
21.1.3 セーフハンドル
21.1.4 セキュリティ
21.2 Platform Invoke
21.2.1 呼び出し規約
21.2.2 テキストの扱い
21.2.3 エントリポイントの名前
21.2.4 COM形式の返り値
21.2.5 Win32でのエラー処理
21.3 COM
21.3.1 RCWの生存期間
21.3.2 メタデータ
21.3.3 スクリプティング
21.4 Windowsランタイム
21.4.1 メタデータ
21.4.2 Windowsランタイム型
21.4.3 バッファ
21.5 Unsafeコード
21.6 C++/CLIとコンポーネント拡張
21.7 まとめ
索引
続きを見る