最終更新:2009-09-23 (水) 02:10:34 (5327d)  

究極のC♯プログラミング
Top / 究極のC♯プログラミング

http://www.atmarkit.co.jp/fdotnet/extremecs/index/index.html

Part 1 - C♯ 3.0―“新しい”プログラミングの可能性

Chapter 1 - C♯ 3.0らしいプログラミングとは?

  • 1.1 - 意外性あり? 本書で解説すること
  • 1.2 - C♯ 3.0らしいソースコードとは?
  • 1.3 - コードの遅延実行という例
  • 1.4 - インターフェース?との比較
  • 1.5 - 後退するクラスの立場
  • 1.6 - クラスベース?プロトタイプベース?
  • 1.7 - クラスベース?の問題点
  • 1.8 - JavaScriptとの相違点
  • 1.9 - まとめ―プログラマよ、心してかかれ!

Part 2 - 新しいプログラミングへ―その助走

Chapter 2 - ジェネリック

Chapter 3 - 新しい繰り返し?のスタイル

yield return文とForEach?メソッド

  • 3.1 - 「繰り返し」という古くて新しい問題
  • 3.2 - 数を数えるというサンプル
  • 3.3 - C♯ 1.xによるRangeクラスの実装
  • 3.4 - C♯ 3.0によるRangeクラスの実装
  • 3.5 - yield break文による中断
  • 3.6 - yieldは予約語ではない
  • 3.7 - 1つのクラスに複数の列挙機能を付ける
  • 3.8 - 自動的に作られるオブジェクトと二重利用
  • 3.9 - catchできない制約
  • 3.10 - 制約の真相―見た目と違う真実の姿
  • 3.11 - ForEach?メソッドを使う別解
  • 3.12 - 性能比較
  • Exercise - 練習問題

Chapter 4 - Find?メソッド

  • 4.1 - MATステートメント?の思い出
  • 4.2 - ForEach?メソッドのbreak問題
  • 4.3 - ForEach?だけではない繰り返しメソッド
  • 4.4 - 複数の結果がほしい場合
  • 4.5 - 偉大なる前進とは何か?
  • 4.6 - そして,LINQへ続く
  • Exercise - 練習問題

Chapter 5 - null許容型?

  • 5.1 - null許容型?とは何か?
  • 5.2 - なぜnullを入れたいのか?
    • null許容型?の美学
    • null許容型?の実利
  • 5.3 - null許容型?の内部構造
  • 5.4 - null合体演算子?
  • 5.5 - is演算子?の挙動に注意
  • 5.6 - 3値論理型?として使用できるbool?型
  • 5.7 - nullを許容するとパフォーマンスに影響するか?
  • Exercise - 練習問題

Part 3 - より新しいプログラミング

Chapter 6 - ラムダ式(前編)

Chapter 7 - ラムダ式(後編)

Chapter 8 - 部分クラス?静的クラス?

  • 8.1 - 部分クラス?(Partial Class)
  • 8.2 - 自動生成コード?と安全に共存する
  • 8.3 - リフレクション部分クラス?
  • 8.4 - 部分クラス?を使ううえでの注意点
  • 8.5 - 静的クラス?(Static Class)
  • Exercise - 練習問題

Chapter 9 - プロパティアクセシビリティ

Chapter 10 - 名前空間エイリアス修飾子?外部アセンブリ?

  • 10.1 - バージョンによるコード破壊?
  • 10.2 - グローバルな名前空間の強制
  • 10.3 - アセンブリ間の名前競合の解決
  • Exercise - 練習問題

Chapter 11 - フレンドアセンブリ?

  • 11.1 - アセンブリ内部のメンバーへのアクセスを許す
    • フレンドアセンブリ?の使い方
  • 11.2 - そもそも,アクセスを制限する価値とは?
  • Exercise - 練習問題

Chapter 12 - varによる変数宣言?コレクション初期化子?

  • 12.1 - 暗黙的に型指定されるローカル変数
  • 12.2 - Variant?型の悪夢
  • 12.3 - 暗黙的に型を明示する
  • 12.4 - なぜvarを使うのか?
  • 12.5 - varが使用できない場面
  • 12.6 - varを活用できる場面
    • usingステートメントで使用するvar
    • foreachステートメントで使用するvar
  • 12.7 - 暗黙的に型指定されるローカル配列?
  • 12.8 - 暗黙に型付けされた配列と型の推測
  • 12.9 - 暗黙に型付けされた配列とnull
  • 12.1 - コレクション初期化子?
  • 12.11 - Dictionaryクラスとコレクション初期化子?
  • 12.12 - 引数が2つのAddメソッドとコレクション初期化子?
  • Exercise - 練習問題

Chapter 13 - 自動実装?自動定義?

Chapter 14 - 拡張メソッド

Part 4 - さらに新しい可能性へ

Chapter 15 - はじめに - LINQクエリ式

  • 15.1 - LINQの面白さ
  • 15.2 - LINQとは何か?
  • 15.3 - 「値の集まり」に対する演算
  • 15.4 - なぜLINQなのか?
  • 15.5 - 最も基本的なLINQ
  • 15.6 - LINQの本質は列挙
  • 15.7 - LINQを使ううえでの注意点
  • 15.8 - クエリ結果を加工する
  • 15.9 - 複数のソースからクエリする
  • 15.1 - 条件で絞り込む
  • 15.11 - 一部項目のみselectする
  • 15.12 - シンプルなソート
  • 15.13 - クエリ?の接続
  • 15.14 - クエリ結果?のグループ化
  • 15.15 - 複数ソースを関連付けるjoin句
  • 15.16 - from句とjoin句のパフォーマンス
  • 15.17 - join句のグループ化結合?
  • 15.18 - join句の左外部結合?
  • 15.19 - 単独で使うDefaultIfEmpty?メソッド
  • 15.2 - 内部列挙を伴うfrom句の二重使用
  • 15.21 - let句
  • 15.22 - クエリ?インスタンス化
  • 15.23 - クエリ結果の個数を得る
  • 15.24 - Anyメソッドと存在チェック
  • 15.25 - まとめ―本章の最初のサンプルを通して
    • 列挙できるものはクエリできるもの
    • ソートやグループ分けができる
    • 複数のソースを処理できる
    • フィルタリングできる
    • “結果”を自由に作り出せる
  • Exercise - 練習問題

Chapter 16 - LINQメソッド構文?

  • 16.1 - 予約語エスケープ
  • 16.2 - メソッド構文?LINQ
  • 16.3 - クエリ式メソッド構文?の違い
  • 16.4 - 絞り込みと結果の生成
  • 16.5 - 最初の事例の別解
  • 16.6 - メソッド構文?でのみ可能なクエリ?
  • 16.7 - メソッド構文?のソート
  • 16.8 - orderbyの比較オブジェクト
  • 16.9 - メソッド構文?の複数のソースからクエリする
  • 16.1 - メソッド構文?のクエリの接続
  • 16.11 - クエリ結果のグループ化
  • 16.12 - メソッド構文?で複数のソースを関連付ける
  • 16.13 - メソッド構文?のグループ化結合
  • 16.14 - メソッド構文?の左外部結合
  • 16.15 - メソッド構文?のlet句
  • Exercise - 練習問題

Chapter 17 - LINQ to SQL

Chapter 18 - LINQ to XML?

  • 18.1 - LINQプロバイダ?を導入する別の理由
  • 18.2 - XML最大の災厄
  • 18.3 - DOMの憂鬱
  • 18.4 - E4XXMLサポート
  • 18.5 - LINQ to XML?というブレークスルー
  • 18.6 - 単純化されたXML文書生成
  • 18.7 - まとめ―ストレスレスなXMLの扱い
  • Exercise - 練習問題

Chapter 19 - 小さな改善とコンパイラの新機能

  • 19.1 - インライン警告制御?「♯pragma warning」
  • 19.2 - 部分メソッド定義?
  • 19.3 - 固定サイズバッファ?
  • 19.4 - volatileIntPtr型およびUIntPtr?型へ適用できる
  • Exercise - 練習問題

補遺] - ラムダ式を使用した事例

  • miniCatalog - C♯ 3.0デザインパターンミニカタログ
    • カスタマイズ可能なメソッド
    • 遅延実行
    • nullデリゲート?
    • 判断条件式?
    • コンパイル時にチェック可能な名前付きコレクション
    • 汎用雑居クラス?
    • getter/setterによる参照
    • 初期化テンプレートオブジェクト?
    • フラットオブジェクト?
    • フラットオブジェクトファクトリ?

Appendix 1 - Visual Studio 2005/Visual Studio 2008コンパイラの新機能

  • A1.1 - C♯ 2.0コンパイラでの変更点
    • /errorreportオプション
    • /incrementalオプションの削除
    • /keycontainerオプションと/keyfileオプション
    • /langversionオプション
    • /linkresourceオプション
    • /moduleassemblynameオプション
    • /pdbオプション
    • /platformオプション
  • A1.2 - C♯ 3.0コンパイラ用の機能
    • /win32Manifest
    • /noWin32Manifest

Appendix 2 - .NET Framework 3.5の新機能―式ツリー

  • Special Appendix 1 - 現役C♯プログラマが語るC♯を使いこなすツボ
  • Speciall Appendix 2 - ステート集約プログラミング?
  • おわりに - C♯ 1.xから3.0への変化とは?
  • 練習問題解答 -