「もっと」スラスラわかるC#!
~~~本書の特徴~~~
本書は、PC・サーバー・スマートフォンなどで動くアプリケーションや、ゲーム開発などさまざまな用途で使われるプログラミング言語、「C#」の入門書です。C#は2002年に誕生し、まだまだ新しい部類に入る言語ですが、その分現代的な考え方を多く取り入れた、そして今も成長し続けている言語です。
この書籍では、はじめてC#を学ぶ人に向け、C#プログラミングの「なぜ」を解決できるように、図解とサンプルを使用した解説をしています。本書を読めば、C#で書かれたプログラムを理解し、自分でC#プログラムを書くための基礎的な知識を身につけることができます。
また、本書ではチュートリアルのように「アプリケーションの作り方」を説明しているわけではなく、C#におけるプログラミングの基礎を体系的に習得できるよう構成し、いつでもスラスラ読み返すことができるように簡潔に説明しています。C#プログラミングに慣れてきた方でも、気軽に本書を開くことで、C#に関する知識や理解をより良い方向へと深めることができるはずです。
C#プログラミングの第一歩として、そしてすべてのC#ユーザーの必携の書としても、おすすめの一冊です。
~~~スラスラわかるポイント~~~
1. 必要な知識だけを厳選
C#の基礎的な文法と言語としての特徴を丁寧に解説しています。いきなり膨大なライブラリなどの知識を含めることはせず、C#の機能を理解するために必要な知識のみを掲載していますので、スラスラ読み進めることができます。
2. 短く読みやすいコード
掲載しているコードはどれも短く、頭の中でイメージしやすい内容にしています。実行結果もあわせて掲載していますので、自分でコードを入力できない場面でも、スラスラ理解することができます。
3. テストで理解度をチェック
各節の終わりにはチェックのためのテストを掲載しています。独学で勉強している人も手軽に理解度をチェックすることができます。
第1章 C#プログラミングを始めよう
1_1 プログラミングとは
1_2 プログラミング言語C#
1_3 C#の全体像
第2章 手続き
2_1 手続きの構成要素
2_2 ステートメント
2_3 組み込み型
2_4 組み込み演算子
2_5 型変換とオーバーフロー
第3章 データの構造化
3_1 構造化でプログラムの見通しをよくする
3_2 配列を使って複数のデータを一度に扱う
3_3 自由度が高いデータの構造化
3_4 匿名型とタプル
第4章 手続きの構造化
4_1 制御フロー構文でフローを制御する
4_2 関数を使うとどこでも同じ処理を行える
4_3 想定外の状況に備えて例外処理をする
4_4 型を整理する名前空間
4_5 定数ならいつでも一定の値を使える
第5章 オブジェクト指向(1)(基礎)
5_1 オブジェクトを指向するとは?
5_2 クラスとインスタンス
第6章 オブジェクト指向(2)(メンバー)
6_1 クラスを構成するメンバー
6_2 オブジェクトを初期化するコンストラクター
6_3 実装の隠蔽
6_4 プロパティ
6_5 クラスに属するメンバー
6_6 クラスの分割定義と部分メソッド
第7章 オブジェクト指向(3)(継承と多態性)
7_1 継承
7_2 多態性
7_3 抽象メソッドとインターフェイス
7_4 パターンマッチング
第8章 第一級市民化
8_1 あらゆる型を組み込み型と同列に扱う
8_2 ユーザー定義型に演算子を定義する
8_3 コレクション初期化子
8_4 添え字でアクセスできるインデクサー
第9章 関数中心の機能
9_1 デリゲートでメソッドを参照する
9_2 匿名関数とローカル関数
9_3 イベントに応じて処理を行う
9_4 静的メソッドと拡張メソッド
第10章 メモリ管理
10_1 スタック/ヒープというメモリ管理手法
10_2 型は値型と参照型に分けられる
10_3 値渡しと参照渡し
10_4 null 許容型
10_5 リソースの破棄
第11章 ジェネリクス
11_1 ジェネリクスで型を変更しやすくする
11_2 ジェネリクスの使い方
11_3 共変性/反変性で親子関係を持たせる
第12章 データ処理
12_1 列挙子
12_2 イテレーターブロックで列挙子を簡単に生成する
12_3 遅延実行
12_4 LINQ
第13章 非同期処理
13_1 マルチスレッドとは?
13_2 非同期メソッド
13_3 排他制御
お問い合わせ
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォーム からお送りください。
利用許諾に関するお問い合わせ
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォーム から申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちら からお問い合わせください。
ご購入いただいた書籍の種類を選択してください。
書籍・SEshop限定PDF
電子書籍
刷数は奥付(書籍の最終ページ)に記載されています。
現在表示されている正誤表の対象書籍
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
正誤表を選びなおす
最終更新日:2023年04月13日
発生刷
ページ数
書籍改訂刷
電子書籍訂正
内容
登録日
1刷
027
表「C#のバージョン比較」内の「6.0」の「新機能」
2刷
済
誤
文字列置換
正
文字列補間
備
考
以下の箇所も同様に修正します。
・p078 1行目の小見出しを「文字列挿入」→「文字列補間」に修正のうえ、その本文内3箇所、Note内1か所
・p099 本文1行目
・p583 「索引」の「マ行」
※リフローEPUBの場合、上記もあわせた修正箇所は以下のとおりです。
・「1_2 プログラミング言語C#」の「バージョンアップ」の表
・「2_3 組み込み型」の「値を伴う文字列」の2つ目の小見出しを「文字列挿入」→「文字列補間」に修正のうえ、1つ目、2つ目、3つ目の段落とNote内
・「2_4 組み込み演算子」の「nameof演算子」の1つ目の段落
・巻末の「検索キーワード」の「マ行」
2022.07.06
1刷
078
冒頭見出し名
2刷
済
誤
文字列挿入
正
文字列補間
備
考
「正」を「文字列置換」としていましたが、「文字列補間」に再修正しました(2022/07/06)。
※リフローEPUBの場合、「2_3 組み込み型」の「値を伴う文字列」の2つ目の小見出しが該当箇所になります。
2018.11.06
1刷
091
図「符号の有無によるシフト演算の差の例」の数字
2刷
済
誤
(画像クリックで拡大)
正
(画像クリックで拡大)
備
考
※リフローEPUBの場合、「2_4 組み込み演算子」の「シフト演算」にある図が該当箇所になります。
2020.12.25
1刷
117
本文1行目
2刷
済
誤
「配列の実態 を生成する」
正
「配列の実体 を生成する」
備
考
※リフローEPUBの場合、「3_2 配列を使って複数のデータを一度に扱う」の2つ目の用語解説「初期化」が該当箇所になります。
2018.12.05
1刷
123
リスト3-3、下から3行目
2刷
済
誤
Console.WriteLine(jug[1, 2] );
正
Console.WriteLine(jug[1][2] );
2018.11.06
1刷
143
Memo内冒頭
2刷
済
誤
実 実際には
正
実際には
備
考
※リフローEPUBの場合、「3_4 匿名型とタプル」のMemo「TupleElementNames属性」の冒頭が該当箇所になります。
2018.11.06
1刷
154
図内「Yes」と「No」の位置を入れ替え
2刷
済
誤
(画像クリックで拡大)
正
(画像クリックで拡大)
備
考
※リフローEPUBの場合、「4_1 制御フロー構文でフローを制御する」の2つ目の図「n個の中から正の数だけの和を求める処理」が該当箇所になります。
2022.07.06
1刷
165
用語解説内、下から4行目末
2刷
済
誤
図A に示すように
正
図に示すように
備
考
※リフローEPUBの場合、「4_1 制御フロー構文でフローを制御する」の用語解説「高級/低級」の2つ目の段落が該当箇所になります。
2018.11.06
1刷
178
リストの1行目
2刷
済
誤
// ← ここまでが式の埋め込み →
Console.WriteLine($"{array[array.Length-1]}}}");
}
正
Console.WriteLine($"{array[array.Length-1]}}}");
}
備
考
コメントを1行削除します。
※リフローEPUBの場合、「4_2 関数を使うとどこでも同じ処理を行える」の「戻り値がない関数」のコード例が該当箇所になります。
2022.07.06
1刷
188
実行結果
2刷
済
誤
12345
127
16945
正
12345
16945
備
考
※リフローEPUBの場合、「リスト4-12」の「実行結果」が該当箇所になります。
2018.12.05
1刷
190
リスト4-13内 2つ目のコメント
2刷
済
誤
// 正数 の文字列自身を画面に表示する
正
// 整数 の文字列自身を画面に表示する
2018.12.05
1刷
201
Column内1行目
2刷
済
誤
tyr -catch
正
try -catch
備
考
※リフローEPUBの場合、「4_3 想定外の状況に備えて例外処理をする」の2つ目のcolumn「例外処理の指針」の本文冒頭が該当箇所になります。
2018.12.05
1刷
228
本文6行目
2刷
済
誤
データを表す を指して
正
データを指して
備
考
※リフローEPUBの場合、「5_1 オブジェクトを指向するとは?」の「オブジェクト指向プログラミングの特徴」の小見出し「中身の隠蔽(カプセル化)」の最後の段落が該当箇所になります。
2018.12.05
1刷
298
本文10~11行目
2刷
済
誤
B extent s A
正
B extend s A
備
考
※リフローEPUBの場合、「7_1 継承」の最初の図「「人間」と「学生」の包含関係」の下、3つ目の段落が該当箇所になります。
2018.12.05
1刷
304
サンプルコード 上から1行目
2刷
済
誤
public string Age
正
public int Age
備
考
「正」の内容を更新しました(2022/05/31)。
※リフローEPUBの場合、「7_1 継承」の「クラスの継承」の構文「基底クラスの引数付きコンストラクターを呼び出す」の次にあるコード例の15行目(空行含まず)が該当箇所になります。
2020.12.25
1刷
345
見出し「whileステートメント、foreachステートメント、usingステートメント」
の上のコード 2行目
未
未
誤
if ((obj is string s ? s. Length : 0) > 2)
正
if ((obj is string s) && s.Length > 2) //
2023.04.13
1刷
360
リスト8-1の実行結果
2刷
済
2019.02.12
1刷
369
リスト8-5内 最初のコメント行
2刷
済
誤
// コレクション初期化子u12363? ら呼び出される
正
// コレクション初期化子か ら呼び出される
2018.12.05
1刷
380
リスト8-10、IndexerSampleクラス
2刷
済
誤
class IndexerSample
{
static void Main()
{
dic["ハァ"] = "( ゚Д゚)?";
dic["ハァハァ"] = "(;´ Д`)";
dic["ポカーン"] = "( ゚д゚)";
dic["オマエモナ"] = "(´ ∀`)";
dic["YO!"] = "<('ヮ')>";
Console.Write(dic["ポカーン"]);
}
}
正
class IndexerSample
{
static void Main()
{
var dic = new Dictionary();
dic["ハァ"] = "( ゚Д゚)?";
dic["ハァハァ"] = "(;´ Д`)";
dic["ポカーン"] = "( ゚д゚)";
dic["オマエモナ"] = "(´ ∀`)";
dic["YO!"] = "<('ヮ')>";
Console.Write(dic["ポカーン"]);
}
}
2018.11.06
1刷
401
本文7行目
2刷
済
誤
テ ストラクター
正
デ ストラクター
備
考
※リフローEPUBの場合、「9_2 匿名関数とローカル関数」の「式形式メンバー」の2つ目の段落が該当箇所になります。
2018.12.05
1刷
413
図内コード下から2行目
2刷
済
誤
_keydown -= handle ;
正
_keydown -= handler ;
備
考
※リフローEPUBの場合、「9_3 イベントに応じて処理を行う」の「イベント構文でイベントハンドラーを登録しよう」の図「イベント構文の実体」内、3つ目のコードブロックの下から2行目が該当箇所になります。
2018.12.05
1刷
522
図内コード4行目
2刷
済
誤
group c by c.Cos into g
正
group c by c.Cost into g
備
考
※リフローEPUBの場合、「12_4 LINQ」の最初の図「データ処理の概念図(左)とC#のクエリ式(右)」の右側のコード例、4行目が該当箇所になります。
2018.12.05
1刷
530
「orderby句」緑の枠内
2刷
済
誤
var data = new[]
{
new { A = "d", B = 2 },
new { A = "a", B = 1 },
new { A = "c", B = 2 },
new { A = "b", B = 1 },
new { A = "e", B = 2 },
};
正
var data = new[]
{
new { A = 2, B = "d", C = 1 },
new { A = 1, B = "a", C = 2 },
new { A = 2, B = "c", C = 3 },
new { A = 1, B = "b", C = 4 },
new { A = 2, B = "e", C = 5 },
};
備
考
※リフローEPUBの場合、「12_4 LINQ」の「クエリ式」の3つ目の小見出し「orser by句」のコード例が該当箇所になります。
2020.12.24
1刷
531
表「OrderByに変換されるorderby句」
2刷
済
誤
(画像クリックで拡大)
正
(画像クリックで拡大)
備
考
x.B→x.Aに修正します。
※リフローEPUBの場合、「12_4 LINQ」の「クエリ式」の3つ目の小見出し「orser by句」の最初の表「OrderByに変換されるorderby句」が該当箇所になります。
2020.12.24
1刷
531
表「OrderByDescendingに変換されるorderby句」
2刷
済
誤
(画像クリックで拡大)
正
(画像クリックで拡大)
備
考
x.B→x.Aに修正します。
※リフローEPUBの場合、「12_4 LINQ」の「クエリ式」の3つ目の小見出し「orser by句」の2つ目の表「OrderByDescendingに変換されるorderby句」が該当箇所になります。
2020.12.24
1刷
552~553
リスト13-3
2刷
済
誤
(画像クリックで拡大)
正
(画像クリックで拡大)
2018.11.06
1刷
553
本文最終行、Asyncのルビ
2刷
済
誤
アシンク
正
エイシンク
備
考
※リフローEPUBの場合、「13_2 非同期メソッド」の「(新しい)非同期メソッドの書き方」の冒頭2行目が該当箇所になります。
2018.12.05
1刷
XVII
目次項目「コレクション初期化子」節番号
2刷
済
誤
1 .3 コレクション初期化子
正
8 .3 コレクション初期化子
2018.11.06