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

[cover photo]
TOPICS
発行年月日
PRINT LENGTH
608
ISBN
978-4-87311-396-8
原書
Programming C# 3.0
FORMAT
PDF

多くのC#プログラマに支持されてきたロングセラーの第5版です。C# 3.0対応で全面改訂され、3.0の新機能LINQや.NETの新機能WPFについての解説が大幅に加筆されました。C#の構文、クラスとオブジェクト、継承とポリモーフィズム、演算子のオーバーロード、構造体、インターフェイス、配列とインデクサ、コレクション、文字列操作と正規表現、例外処理、Windowsフォームの作成、データベースとの連携など、言語仕様から応用にいたるまで、必要な情報をすべてこの1冊に凝縮。C#を体系的に網羅したC#プログラマバイブルの改訂版です。

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

第1刷正誤表

1刷正誤表

プログラミングC# 第5版1刷正誤表

2009年7月1日更新

位置
p22
表3-1
最終行
UInt6 UInt64
p35
下から
4行目
valueTwo = valueOne + 1; valueTwo = valueOne++;
p193
表9-3
最終行
TrimToSize()の行 削除
p303
下から
12行目
HTMLはStructured Query Markup Language(SQML)から HTMLはStandard Generalized Markup Language(SGML)から

目次

推薦の言葉
まえがき
第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#のキーワード
索引