初めてのC# 第2版

[cover photo]
TOPICS
Programming , C#
発行年月日
PRINT LENGTH
376
ISBN
4-87311-294-X
原書
Learning C# 2005, Second Edition
FORMAT
PDF
Ebook
3,080円
Ebookを購入する

プログラミング言語としてのC#を基本から学べる入門書。WindowsアプリケーションやWebアプリケーションの作り方を単に紹介するのではなく、C#を使ってプログラミングの基礎を丁寧に解説します。デバッグや例外、ジェネリック、デリゲートなどについては章を立てて平易な表現で丁寧に解説しているのでプログラミングが未経験という読者にも好適です。各章末に用意した練習問題を使って理解度をチェックしながら学習できます。C# 2.0およびVisual Studio 2005(Visual C# 2005 Express Edition)対応。

正誤表

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

正誤表


2009年5月掲載、3刷で修正済みです。

■P.209 下から6行め
【誤】Fractionからintへの明示的なキャストが必要であるすることを表す、
【正】Fractionからintへの明示的なキャストが必要であることを表す、

■P.221 上から18行め
【誤】ICompressibleには、Compress()とUncompress()の2個のメソッドがあります。
【正】ICompressibleには、Compress()とDecompress()の2個のメソッドがあります。

■P.252 下から1行め
【誤】エラーから回復するできるようにすることを考えてください。
【正】エラーから回復できるようにすることを考えてください。

■P.302 上から17行め
【誤】System.Exceptionから派生したものするように推奨しています。
【正】System.Exceptionから派生したものにするよう推奨しています。

目次

まえがき

1章 C#と.NETプログラミング
    1.1 C#2005と.NET 2.0
    1.2 .NETプラットフォーム
    1.3 .NET Framework 2.0
    1.4 プログラミング言語C#
    1.5 C#アプリケーションの構造
    1.6 開発環境
    1.7 最初のプログラム:Hello World
    1.8 コンパイラ
    1.9 最初のプログラムの内容
    1.10 まとめ
    1.11 練習問題

2章 Visual Studio 2005
    2.1 プロジェクトとソリューション
    2.1.1 作成可能なプロジェクト
        2.1.2 テンプレート
    2.2 IDEの内部
    2.3 ビルドと実行
    2.4 メニューとツールバー
    2.5 その他の機能
        2.5.1 ブックマーク
        2.5.2 IntelliSense
    2.6 まとめ
    2.7 練習問題

3章 C#言語の基礎
    3.1 ステートメント
    3.2 型
        3.2.1 数値型
        3.2.2 非数の型:charとbool
        3.2.3 型とコンパイルエラー
    3.3 変数
    3.4 明示的な代入
    3.5 定数
        3.5.1 リテラル定数
        3.5.2 シンボリック定数
        3.5.3 列挙型
    3.6 文字列
    3.7 式
    3.8 ホワイトスペース
    3.9 まとめ
    3.10 練習問題

4章 演算子
    4.1 代入演算子(=)
    4.2 算術演算子
        4.2.1 単純な算術演算子(+、−、*、/)
        4.2.2 モジュロ演算子(%)
    4.3 インクリメントとデクリメント演算子
        4.3.1 計算と再代入演算子
        4.3.2 インクリメントとデクリメント演算子
        4.3.3 プリフィックスとポストフィックス演算子
    4.4 関係演算子
        4.4.1 条件と論理演算子の使い方
        4.4.2 条件演算子
        4.4.3 演算子の優先順位
    4.5 まとめ
    4.6 練習問題

5章 実行制御
    5.1 無条件分岐ステートメント
    5.2 条件付き分岐ステートメント
        5.2.1 ifステートメント
        5.2.2 シングルステートメントifブロック
        5.2.3 短絡評価
        5.2.4 if...elseステートメント
        5.2.5 ネストしたifステートメント
        5.2.6 switchステートメント
        5.2.7 caseの通過とジャンプ
        5.2.8 switchとstring
    5.3 繰り返しステートメント(ループ)
        5.3.1 gotoを使ったループ
        5.3.2 whileループ
        5.3.3 do...whileループ
        5.3.4 forループ
    5.4 まとめ
    5.5 練習問題

6章 オブジェクト指向プログラミング
    6.1 モデルの作成
    6.2 クラスとオブジェクト
    6.3 クラスの定義
    6.4 クラスの関連性
    6.5 オブジェクト指向プログラミングの3つの柱
        6.5.1 カプセル化
        6.5.2 特化
        6.5.3 ポリモーフィズム
    6.6 オブジェクト指向解析と設計
    6.7 まとめ
    6.8 練習問題

7章 クラスとオブジェクト
    7.1 クラスの定義
        7.1.1 オブジェクトのインスタンス作成
        7.1.2 Timeクラスの作成
        7.1.3 アクセス修飾子
    7.2 メソッドの引数
    7.3 コンストラクタ
    7.4 初期化子
    7.5 キーワードthis
    7.6 staticメンバとインスタンスメンバ
        7.6.1 staticメソッドの実行
        7.6.2 staticフィールドの使い方
    7.7 オブジェクトの破棄
    7.8 メモリ割り当て:スタックとヒープ
    7.9 まとめ
    7.10 練習問題

8章 メソッド
    8.1 メソッドのオーバーロード
    8.2 プロパティへのデータのカプセル化
        8.2.1 getアクセサ
        8.2.2 setアクセサ
    8.3 複数の値を返すメソッド
        8.3.1 参照による値型の渡し方
        8.3.2 出力引数と限定代入
    8.4 まとめ
    8.5 練習問題

9章 デバッグ
    9.1 ブレークポイントの設定
        9.1.1 デバッグメニューを使ったブレークポイントの設定
        9.1.2 条件とヒットカウントの設定
    9.2 値の評価:自動変数とローカル変数ウィンドウ
    9.3 ウォッチの設定
    9.4 コールスタック
    9.5 まとめ
    9.6 練習問題

10章 配列
    10.1 配列の使い方
        10.1.1 配列の宣言
        10.1.2 デフォルト値
        10.1.3 配列要素へのアクセス
    10.2 foreachステートメント
    10.3 配列要素の初期化
    10.4 キーワードparams
    10.5 多次元配列
        10.5.1 長方形配列
        10.5.2 ジャグ配列
    10.6 配列のメソッド
    10.7 配列要素のソート
    10.8 まとめ
    10.9 練習問題

11章 継承とポリモーフィズム
    11.1 特化と汎化
    11.2 継承
        11.2.1 継承の実装
        11.2.2 ベースクラスのコンストラクタの呼び出し
        11.2.3 アクセス制御
    11.3 ポリモーフィズム
        11.3.1 ポリモーフィズム型の作成
        11.3.2 newを使ったバージョンの作成とオーバーライド
    11.4 抽象クラス
    11.5 シールクラス
    11.6 すべてのクラスのルートクラス(Object)
    11.7 ボクシングとアンボクシング
        11.7.1 暗黙のボクシング
        11.7.2 明示的アンボクシング
        11.7.3 ジェネリックによるボクシングの回避
    11.8 まとめ
    11.9 練習問題

12章 演算子のオーバーロード
    12.1 キーワードoperatorの使い方
    12.2 役立つ演算子の定義
    12.3 Equals演算子
    12.4 変換演算子
    12.5 まとめ
    12.6 練習問題

13章 インタフェース
    13.1 インタフェースの実装
        13.1.1 インタフェースの定義
        13.1.2 クライアント上のインタフェースの実装
    13.2 複数のインタフェースの実装
    13.3 インタフェースへのキャスト
    13.4 演算子isとas
    13.5 インタフェースの拡張
    13.6 インタフェースの結合
    13.7 インタフェースの実装のオーバーライド
    13.8 明示的なインタフェース実装
    13.9 まとめ
    13.10 練習問題

14章 ジェネリックとコレクション
    14.1 ジェネリック
    14.2 コレクションインタフェース
    14.3 独自のコレクションの作成
        14.3.1 インデクサと代入
        14.3.2 ほかの値のインデックス
        14.3.3 ジェネリックコレクションインタフェース
        14.3.4 IEnumerable>T<インタフェース
    14.4 .NET Frameworkのジェネリックコレクション
        14.4.1 ジェネリックリスト:List>T<
        14.4.2 ジェネリックキュー
        14.4.3 ジェネリックスタック
        14.4.4 Dictionary
    14.5 まとめ
    14.6 練習問題

15章 文字列
    15.1 文字列の作成
        15.1.1 文字列リテラル
        15.1.2 エスケープキャラクタ
        15.1.3 @リテラル文字列
        15.1.4 ToString()
    15.2 文字列の操作
        15.2.1 文字列の比較
        15.2.2 文字列の連結
        15.2.3 文字列のコピー
        15.2.4 等価比較
        15.2.5 その他のStringクラスの役立つメソッド
        15.2.6 部分文字列の検索
        15.2.7 文字列の分割
        15.2.8 StringBuilderクラス
    15.3 正規表現
    15.4 Regexクラス
    15.5 まとめ
    15.6 練習問題

16章 例外
    16.1 バグ、エラー、例外
    16.2 例外のスロー
    16.3 例外ハンドラの検索
    16.4 throwステートメント
    16.5 tryとcatchステートメント
    16.6 コールスタックの機能
    16.7 専用のcatchステートメントの作成
    16.8 finallyステートメント
    16.9 例外クラスのメソッドとプロパティ
    16.10 カスタム例外
    16.11 まとめ
    16.12 練習問題

17章 デリゲートとイベント
    17.1 デリゲート
        17.1.1 実行時にメソッドを指定するためのデリゲートの使い方
    17.2 マルチキャスト
    17.3 イベント
        17.3.1 パブリッシュとサブスクライブ
        17.3.2 イベントとデリゲート
        17.3.3 イベントに関するデリゲート問題の解決
        17.3.4 キーワードevent
    17.4 匿名メソッドの使い方
    17.5 まとめ
    17.6 練習問題

索引


■コラム
    WriteLine()
    名付け規約
    キャスト
    WriteLine()の制御文字
    中括弧のスタイル
    スパゲティコード
    比喩(メタファー)
    フィボナッチ数列
    本書のサンプルについて
    クラスとオブジェクト
    構造体
    抽象の背後の考え方
    等価の意味
    インタフェースと抽象ベースクラス
    属性