多くのC#プログラマに支持されてきたロングセラーの第5版です。C# 3.0対応で全面改訂され、3.0の新機能LINQや.NETの新機能WPFについての解説が大幅に加筆されました。C#の構文、クラスとオブジェクト、継承とポリモーフィズム、演算子のオーバーロード、構造体、インターフェイス、配列とインデクサ、コレクション、文字列操作と正規表現、例外処理、Windowsフォームの作成、データベースとの連携など、言語仕様から応用にいたるまで、必要な情報をすべてこの1冊に凝縮。C#を体系的に網羅したC#プログラマバイブルの改訂版です。
プログラミングC# 第5版
Jesse Liberty, Donald Xie 著、鈴木 幸敏、首藤 一幸、株式会社情報技研 訳
- TOPICS
- 発行年月日
- 2009年02月
- PRINT LENGTH
- 608
- ISBN
- 978-4-87311-396-8
- 原書
- Programming C# 3.0
- FORMAT
正誤表
ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。
第1刷正誤表
プログラミングC# 第5版1刷正誤表
2009年7月1日更新
|
目次
推薦の言葉 まえがき 第I部 C#言語 1章 C# 3.0と.NET Framework 3.5 1.1 C#の進化 1.2 C#言語 1.2.1 C#の歴史概略 1.2.2 C#の機能 1.3 .NETプラットフォーム 2章 最初の一歩:Hello World 2.1 クラス、オブジェクト、型 2.1.1 メソッド 2.1.2 コメント 2.1.3 コンソールアプリケーション 2.1.4 名前空間 2.1.5 ドット演算子(.) 2.1.6 usingディレクティブ 2.1.7 アルファベットの大文字と小文字 2.1.8 staticキーワード 2.2 “Hello World”の開発 2.2.1 “Hello World”の編集 2.2.2 “Hello World”のコンパイルと実行 2.3 Visual Studioデバッガの使用 3章 C#言語の基礎 3.1 型 3.1.1 組み込みの型 3.2 変数と定数 3.2.1 確実な代入 3.2.2 定数 3.2.3 列挙体 3.2.4 文字列 3.2.5 識別子 3.3 空白文字 3.4 文 3.4.1 無条件分岐 3.4.2 条件分岐 3.4.3 繰り返し文 3.5 演算子 3.5.1 代入演算子(=) 3.5.2 算術演算子 3.5.4 関係演算子 3.5.5 条件式に用いる論理演算子 3.5.6 演算子の優先順位 3.5.7 唯一の三項演算子 3.6 プリプロセスディレクティブ 3.6.1 シンボルの定義 3.6.2 シンボルの未定義化 3.6.3 #if、#elif、#else、#endif 4章 クラスとオブジェクト 4.1 クラスの定義 4.1.1 アクセス修飾子 4.1.2 メソッドの引数 4.2 オブジェクトの作成 4.2.1 コンストラクタ 4.2.2 初期化子 4.2.3 ICloneableインターフェイス 4.2.4 オブジェクト初期化子 4.2.5 thisキーワード 4.3 staticメンバの使用 4.3.1 staticメソッドの呼び出し 4.3.2 staticコンストラクタの使用 4.3.3 staticクラス 4.3.4 staticフィールドの使用 4.4 オブジェクトの破壊 4.4.1 C#のデストラクタ 4.4.2 デストラクタかDisposeか 4.4.3 Closeメソッド 4.4.4 using文 4.5 引数の受け渡し 4.5.1 参照渡し 4.5.2 out引数による確実な代入 4.6 メソッドとコンストラクタのオーバーロード 4.7 プロパティによるデータのカプセル化 4.7.1 getアクセサ 4.7.2 setアクセサ 4.7.3 プロパティのアクセス修飾子 4.8 プロパティの自動実装 4.9 readonlyフィールド 5章 継承とポリモーフィズム 5.1 特化と汎化 5.2 継承 5.2.1 継承の実装方法 5.3 ポリモーフィズム 5.3.1 ポリモーフィックな型の作成 5.3.2 ポリモーフィックなメソッドの作成 5.3.3 基本クラスのコンストラクタの呼び出し 5.3.4 アクセス制御 5.3.5 newとオーバーライドによるバージョン管理 5.4 抽象クラス 5.4.1 abstractの限界 5.4.2 シールクラス 5.5 すべてのクラスの根:Object 5.6 入れ子になったクラス 6章 演算子のオーバーロード 6.1 operatorキーワード 6.2 他.NET言語への配慮 6.3 オーバーロードすべき場合 6.4 対となる比較演算子 6.5 ==演算子 6.6 変換演算子 6.7 演算子の実装例 7章 構造体 7.1 構造体の定義 7.2 構造体の作成 7.2.1 値型 8章インターフェイス 8.1 インターフェイスの定義および実装 8.1.1 複数のインターフェイスの実装 8.1.2 インターフェイスの拡張 8.1.3 インターフェイスの結合 8.1.4 インターフェイスとポリモーフィズム 8.1.5 インターフェイスか抽象クラスか 8.2 インターフェイスが規定するメソッドのオーバーライド 8.3 明示的なインターフェイスメンバの実装 8.3.1 インターフェイスメンバの選択的な公開 8.3.2 メンバの隠蔽 9章 配列、インデクサ、コレクション 9.1 配列 9.1.1 配列の宣言 9.1.2 要素の既定値 9.1.3 配列の要素へのアクセス 9.2 foreach文 9.2.1 配列の各要素の初期化 9.2.2 paramsキーワード 9.2.3 多次元配列 9.2.4 配列の境界 9.2.5 配列の型変換 9.2.6 配列のソート 9.3 インデクサ 9.3.1 インデクサと代入 9.3.2 整数以外を添字とするインデクサ 9.4 コレクションのためのインターフェイス 9.4.1 IEnumerable>T<インターフェイス 9.5 制約 9.6 List>T< 9.6.1 IComparableインターフェイスの実装 9.6.2 IComparerインターフェイスの実装 9.7 Queueクラス 9.8 Stackクラス 9.9 Dictionaryクラス 9.9.1 IDictionary>K,V< 10章 文字列と正規表現 10.1 文字列 10.1.1 文字列の作成 10.1.2 ToStringメソッド 10.1.3 文字列の操作 10.1.4 部分文字列の取得 10.1.5 文字列の分割 10.1.6 StringBuilderクラス 10.2 正規表現 10.2.1 正規表現を使う:Regexクラス 10.2.2 MatchCollectionクラス 10.2.3 グループ 10.2.4 CaptureCollectionクラス 11章 例外 11.1 例外の発生と捕捉 11.1.1 throw文 11.1.2 catch節 11.1.3 Try/catchにおける最善策 11.1.4 finally節 11.2 例外オブジェクト 12章 デリゲートとイベント 12.1 イベント 12.2 イベントとデリゲート 12.2.1 間接実行 12.2.2 発行と購読(Observerパターン) 12.2.3 発行者クラス:Clock 12.2.4 通知を受信する 12.2.5 イベントの処理順序 12.2.6 デリゲートの危険性 12.2.7 eventキーワード 12.3 非同期メソッド 12.3.1 ラムダ式 12.3.2 コールバックメソッド 第II部 C#とデータ 13章 LINQ概要 13.1 クエリの定義と実行 13.1.1 クエリの作成 13.1.2 クエリの遅延評価 13.2 LINQとC# 13.2.1 結合 13.2.2 順序付けとvarキーワード 13.2.3 グループ化とgroupキーワード 13.3 匿名型 13.4 暗黙的に型指定されるローカル変数 13.5 拡張メソッド 13.5.1 拡張メソッドの定義と運用 13.5.2 拡張メソッドの制約 13.6 LINQにおけるラムダ式 14章 XMLファイルの操作 14.1 XMLの基本(簡単な概要) 14.1.1 要素 14.1.2 XHTML 14.2 eXtensibleのX 14.3 XMLドキュメントの作成 14.3.1 XML要素 14.3.2 XMLの属性 14.4 XPathを使用したXMLの検索 14.4.1 単一ノードの検索 14.4.2 軸を使用した検索 14.4.3 述語 14.4.4 XPath関数 14.5 XPathNavigatorを使用した検索 14.5.1 XPathNodeIteratorの使用 14.5.2 XPathExpressionの使用 14.6 XMLのシリアル化 14.6.1 属性を使用したXMLシリアル化のカスタマイズ 14.6.2 実行時のXMLシリアル化のカスタマイズ 15章 LINQを動かす 15.1 準備 15.2 LINQ to SQLの基礎 15.3 Visual Studio Linq to SQL デザイナの利用 15.4 データの検索 15.4.1 各テーブルに対応するプロパティの作成 15.4.2 LINQクエリ 15.5 LINQ to SQLを使用したデータ更新 15.5.1 顧客レコードの追加 15.5.2 Customerレコードの編集 15.6 リレーショナルデータの削除 15.7 LINQ to XML 16章 ADO.NETとリレーショナルデータベース 16.1 リレーショナルデータベースとSQL 16.1.1 テーブル、レコード、列 16.1.2 正規化 16.1.3 宣言参照整合性 16.1.4 SQL 16.2 ADO.NETのオブジェクトモデル 16.2.1 DataTableとDataColumn 16.2.2 Relations 16.2.3 Rowsコレクション 16.2.4 DataAdapter 16.2.5 DBCommandとDBConnection 16.2.6 DataReader 16.3 ADO.NETの最初の一歩 第III部 C#プログラミング 17章 ASP.NETアプリケーションの作成 17.1 Webフォームの基礎 17.1.1 Webフォームのイベント 17.1.2 Webフォームの有効期間 17.2 Webフォームの作成 17.2.1 分離コードファイル 17.2.2 コントロールの追加 17.2.3 サーバサイドコントロール 17.3 データの関連づけ 17.3.1 コードの詳細 17.3.2 コントロールとイベントの追加 18章 WPFアプリケーションの作成 18.1 WPFの最初の一歩 18.1.1 WPFのサンプル作成 18.1.2 サンプルプログラム 18.2 アプリケーションの作成 18.2.1 GridとStackPanel 18.2.2 駆け足での説明 18.2.3 データの追加 18.2.4 XAMLにおけるデータの利用 18.2.5 ListBoxの定義 18.2.6 完成したXAMLファイル 18.2.7 イベント処理(いよいよです!) 18.3 何を学んだの、ドロシー? 19章 Windowsフォームアプリケーションの作成 19.1 アプリケーションの作成 19.1.1 イベントハンドラの作成 19.1.2 TreeViewのデータ設定 19.1.3 TreeViewのイベントの処理 19.1.4 [Copy]ボタンのイベントの実装 19.1.5 [Delete]ボタンのイベントの処理 第IV部 CLRと.NET Framework 20章 属性とリフレクション 20.1 属性 20.1.1 属性型 20.1.2 カスタム属性 20.2 リフレクション 20.2.1 メタデータの表示 20.2.2 型の探索 20.2.3 型のリフレクション 20.2.4 実行時バインディング 21章 スレッドと同期処理 21.1 スレッド 21.1.1 スレッドの開始 21.1.2 スレッドの結合 21.1.3 Sleepを使ったスレッドのブロック処理 21.1.4 スレッドの停止 21.2 同期処理 21.2.1 Interlockedクラスの使用 21.2.2 ロックの使用 21.2.3 Monitorの使用 21.3 競合状態とデッドロック 21.3.1 競合状態 21.3.2 デッドロック 22章 ストリーム 22.1 ファイルとディレクトリ 22.1.1 Directoryの使用 22.1.2 DirectoryInfoオブジェクトの作成 22.1.3 Fileクラスの使用 22.1.4 ファイルの修正 22.2 データの読み取りと書き込み 22.2.1 バイナリファイル 22.2.2 BufferedStream 22.2.3 テキストファイルの操作 22.3 非同期I/O 22.4 ネットワークI/O 22.4.1 ネットワークストリームサーバの構築 22.4.2 ネットワークストリームクライアントの作成 22.4.3 複数コネクションの扱い 22.4.4 非同期ネットワークファイルストリーム 22.5 Webストリーム 22.6 シリアル化 22.6.1 Formatterの使用 22.6.2 シリアル化の使用 22.6.3 一時データの扱い 22.7 分離ストレージ 23章 .NETとCOMの連携 23.1 ActiveXコントロールのインポート 23.1.1 ActiveXコントロールの作成 23.1.2 ActiveXコントロールを.NETにインポートする 23.2 プラットフォーム呼び出し(P/Invoke) 23.3 ポインタ 付録 C#のキーワード 索引