プログラミングC# 第7版

[cover photo]
  • 2013年11月 発行
  • 768ページ
  • ISBN978-4-87311-650-1
  • フォーマット Print PDF
  • 原書: Programming C# 5.0

オライリー・ジャパンで書籍を購入:
定価5,184円

Ebook Storeで電子版を購入:
価格4,147円

C# 5.0対応とVisual Studioの新バージョンのリリースに合わせて全面的に書き直されたロングセラーの第7版。C# 5.0で飛躍的に使いやすくなった非同期処理についての詳細のほか、Rx(Reactive Extensions)やXAMLといった機能についての解説を大幅に加筆しています。言語仕様からWindows 8アプリ開発のテクニックといった応用にいたるまで、必要な情報がすべてこの1冊に凝縮されています。C#を体系的に網羅したC#プログラマのバイブルです。

関連書籍

C#クックブック 第3版
Head First C#
プログラミングF#

訳者まえがき
まえがき

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<T>
    5.3 リストインタフェースとシーケンスインタフェース
    5.4 リストとシーケンスを実装する
        5.4.1 イテレータ
        5.4.2 Collection<T>
        5.4.3 ReadOnlyCollection<T>
    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<T>のボックス化
    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<T>
    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<T>
        11.2.2 IObservable<T>
    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<T>
        11.8.2 BehaviorSubject<T>
        11.8.3 ReplaySubject<T>
        11.8.4 AsyncSubject<T>
    11.9 変換
        11.9.1 IEnumerable<T>
        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<T>クラス
        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 まとめ

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]