岩永 信之 著
初めてプログラミングを学ぶ人や学生など、各種プログラミング言語の習得を目指す層に向けた、新しい入門書シリーズの続巻です。本シリーズでは、「プログラミング関連の知識はゼロ」という状態から、プログラミングの基礎知識や作法、言語の基本構文、基本テクニックなどを無理なく習得し、かつプログラムが自力で作れるようになるところまで、しっかりとフォローします。本書の著者はC#を知り尽くしたMicrosoft MVP。他言語にはないC#の特徴を要点を押さえてわかりやすく解説します。最新のVisual Studio 2012に対応。他の入門書で挫折した方やプログラミングに苦手意識を持っている方にもおすすめです。
第1章 C#プログラミングをはじめよう
1.1 プログラミングとは
プログラムをプログラミングするということ
コンピュータとの会話に必要な言語
プログラムの実行過程
1.2 プログラミング言語C#
C#とは
.NET Frameworkとは
Visual Studioとは
初めてのC#プログラム
初めてのGUIプログラム
バージョンアップ
1.3 C#の全体像
ユーザー定義型
名前空間
メンバー
コメント
手続き
第2章 章手続きの構成要素
1.1 プログラミングとは
2.1 変数と式
変数はデータの格納場所
変数を使うために宣言する
変数の種類を表す「型」
スコープで変数の使用範囲を決める
2.2 ステートメント
ブロックでステートメントをひとまとめ
2.3 組み込み型
整数型
浮動小数点数型
10進数
論理値型
文字型
文字列型
オブジェクト型
2.4 組み込み演算子
演算子の種類
算術演算
インクリメント/デクリメント
シフト演算
論理演算
関係演算
複合代入演算
条件演算
Null合体演算
ショートサーキット評価
2.5 型変換/オーバーフロー
暗黙的な型変換
明示的な型変換
オーバーフローのチェック
第3章 手続きの構造化
1.1 プログラミングとは
3.1 構造化でプログラムの見通しを良くする
3.2 配列を使って複数のデータを一度に扱う
配列がなかったら
配列の作り方
配列の利用
配列の配列
多次元配列
3.3 自由度が高いデータの構造化
クラスでデータをひとまとめにする
特定の値だけを扱う列挙型
3.4 制御フロー構文でフローを制御する
逐次処理は基本的なフロー
条件に応じて処理内容を変更する条件分岐
反復では処理を特定の条件の間繰り返す
3.5 関数を使うとどこでも同じ処理を行える
関数の作成と利用
引数が複数ある関数、引数のない関数、戻り値のない関数
関数のオーバーロード
特殊な引数の渡し方
3.6 想定外の状況に備えて例外処理をする
例外って?
例外処理構文による例外処理
標準で用意されている例外クラス
3.7 型を整理する名前空間
名前空間とは?
名前空間の使い方
エイリアス
3.8 定数ならいつでも一定の値を使える
変化しない値が必要なワケ
第4章 オブジェクト指向(1)(基礎)
1.1 プログラミングとは
4.1 オブジェクトを指向するとは?
オブジェクト指向プログラミングの特徴
オブジェクト指向プログラミング言語
4.2 クラスとインスタンス
クラスを基にインスタンスを作る
クラスを定義する
クラスの性質を指定するための修飾子
クラスを利用する
クラスと構造体
4.3 クラスを構成するメンバー
メンバーに対する修飾子
定数を表すための手段
4.4 オブジェクトを初期化するコンストラクター
コンストラクターを定義する
メンバーを初期化する初期化子
インスタンスを破棄するデストラクター
4.5 実装の隠蔽
1 オブジェクトの不正な書換えを防止する
2 クラスの実装を変更した際、利用側のコードを修正する必要をなくす
4.6 プロパティ
set/getで異なるアクセスビリティを設定
4.7 クラスに属するメンバー
静的メンバーの定義
静的コンストラクター
静的クラス
第5章 オブジェクト指向(2)(継承と多態性)
1.1 プログラミングとは
5.1 継承
継承関係とは
クラスの継承
アップキャストとダウンキャスト
5.2 多態性
仮想メソッド
仮想メソッドの利用例(多態性)
5.3 抽象メソッドとインターフェイス
抽象化
インターフェイス
第6章 第一級市民化
1.1 プログラミングとは
6.1 あらゆる型を組み込み型と同列に扱う
6.2 オーバーロードで思い通りの演算子を作る
演算子をオーバーロードする方法
オーバーロード可能な演算子
独自のキャストを定義する
6.3 コレクション初期化子
6.4 添え字でアクセスできるインサクデサー
インデクサーを利用する
第7章 関数中心の機能
1.1 プログラミングとは
7.1 デリゲートでメソッドを参照する
デリゲートの定義と使用
デリゲートの機能
使い勝手がよくなる匿名関数
デリゲートの用途
7.2 イベントに応じて処理を行う
イベント処理には定型パターンがある
イベント構文でイベントハンドラを登録しよう
7.3 静的メソッドと拡張メソッドを使い分けよう
拡張メソッドの意義
拡張メソッドの呼び出しルール
第8章 メモリ管理
1.1 プログラミングとは
8.1 スタック/ヒープというメモリ管理手法
スタックは積み上げ式
ヒープは乱雑な山積み式
自動でヒープ管理を行うガベージコレクション
8.2 型は値型と参照型に分けられる
値型と参照型の違い
値型と参照型の利点
C#の型の分類
ボックス化
引数の参照渡し
out修飾子による出力引数
8.3 Null許容型
Nullable型
Nullable型のメンバー
Nullable型に対する演算
??演算
8.4 リソースの破棄
リソース破棄の例
usingステートメント
第9章 ジェネリック
1.1 プログラミングとは
9.1 ジェネリクで型を変更しやすくする
メソッドをジェネリックにする
クラスをジェネリックにする
ジェネリックの利点
型パラメータ
インスタンス化で具体的な型を与える
複雑な型パラメータの使い方
既定値で初期化する
9.2 共変性/反変性で親子関係を持たせる
ジェネリックの共変性/反変性
in/out修飾子
第10章 データ処理
10.1 列挙子
IEnumerableインターフェイスで要素を列挙する
IEnumerableの実装例
反復子ブロックで列挙子を簡単に生成する
遅延処理
10.2 LINQ
データ処理を構成するもの
LINQの構成要素
クエリ式
標準クエリ演算子
LINQプロバイダ
第11章 非同期処理
1.1 プログラミングとは
11.1 マルチスレッド処理
スレッドは処理を動かす基本単位
排他制御でデータへの処理を整理する
volatile
11.2 非同期メソッド
旧来的な書き方
非同期メソッドの書き方
非同期メソッドの戻り値の型
Appendix 付録
付録1 Visual Studioのインストール
インストーラーのダウンロード
インストール
起動・オンライン登録
付録2 CheckTestの解答
Column
コメントに書くこと
組み込み型とユーザー定義型
匿名型
例外処理の指針
クラスの定義分割とパーシャルメソッド
constのバージョニング問題
コンパイラ任せでプロパティやイベントを実装する
object型
foreachステートメントによる列挙
C# 1.1以前のデリゲート
純粋なメソッド
構造体
in/outにまつわる余談
実は必ずしも非同期ではない
付属データはこちら
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | xii 下から2行目 |
2刷 | 済 |
|
2016.04.25 | ||||||
1刷 | 047 2つめのNote |
2刷 | 済 |
|
2013.12.27 | ||||||
1刷 | 051 表2.2の浮動小数点数型の行 |
2刷 | 済 |
|
2013.05.20 | ||||||
1刷 | 064 表2.6の下から3行目 |
2刷 | 済 |
|
2013.05.20 | ||||||
1刷 | 067 図2.11 |
2刷 | 済 |
|
2013.12.27 | ||||||
1刷 | 068 図2.12左側「符号なし整数(論理シフト)」 |
2刷 | 済 |
|
2015.08.31 | ||||||
1刷 | 068 図2.13「OR(論理和)」「XOR(排他的論理和)」の見出し行 |
2刷 | 済 |
|
2015.08.31 | ||||||
1刷 | 069 「表2.12 論理演算子」の「x^y」(XOR)の例2行目 |
2刷 | 済 |
|
2016.03.01 | ||||||
1刷 | 069 表2.11 演算子「x ^ y」行の「例」列 |
2刷 | 済 |
|
2015.08.31 | ||||||
1刷 | 084 図3.1の条件分岐 |
2刷 | 済 |
|
2016.03.01 | ||||||
1刷 | 093 「書式:多次元配列の初期化」の1行目 |
2刷 | 済 |
|
2015.08.31 | ||||||
1刷 | 093 「書式:多次元配列の初期化」のフキダシ |
2刷 | 済 |
|
2015.08.31 | ||||||
1刷 | 094 リスト3.3の上から7~11行目 |
2刷 | 済 |
|
2013.05.20 | ||||||
1刷 | 138 【書式】名前空間の定義 |
2刷 | 済 |
|
2013.05.20 | ||||||
1刷 | 171 readonlyキーワードを使った例 |
2刷 | 済 |
|
2016.02.29 | ||||||
1刷 | 213 上部コード表記中17~19行目 |
2刷 | 済 |
|
2013.12.27 | ||||||
1刷 | 222 リスト5.7の2つ目のフキダシ |
2刷 | 済 |
|
2013.12.27 | ||||||
1刷 | 224 中段のコード |
2刷 | 済 |
|
2013.05.20 | ||||||
1刷 | 231 4行目および8行目 |
2刷 | 済 |
|
2014.05.16 | ||||||
1刷 | 232 コード中7行目(空行含む) |
2刷 | 済 |
|
2014.05.16 | ||||||
1刷 | 246 2つ目のコード中8行目(空行含む) |
2刷 | 済 |
|
2014.05.16 | ||||||
1刷 | 280 図7.4 イベント構文の実体 |
未 | 未 |
|
2016.04.21 |
金糸雀 さん
2013-08-02
著者はどこが「スラスラわかる」と思ったのかカナの前で釈明すること
おげ さん
2016-08-08
読んだってのもおかしな話だけど
ryo511 さん
2015-04-15
内容的には間違いなく良書で、C#5.0現在の言語仕様を上手くまとめている。類書と比べても、ページ数は少なめながら、機能の理解に必要な量のサンプルはちゃんと用意されているので、読み通しやすく理解もしやすい。ただし、「プログラミングの知識は不要」という表紙の謳い文句は大嘘。これより易しいC#の入門書は無いかもしれないけど、これでプログラミングに入門するのはかなり厳しい。A