書籍: 〔速攻入門〕 C#プログラミング すぐに現場で使える知識

〔速攻入門〕 C#プログラミング すぐに現場で使える知識
~ Java か C++ の経験があれば、 いっそう有利な最短ルート

中 博俊 (著), 猪股 健太郎 (著), 岩永 信之 (著), 山本 康彦 (著)
技術評論社 (2012/3/9)
ISBN-13: 978-4774150161
344ページ
¥ 2,814 (税込)

技術評論社のページ ⇒ 書籍案内
岩永のブログ記事 ⇒ ++C++; // 未確認飛行 C ブログ
猪股のブログ記事 ⇒ 猫とC#について書くmatarilloの雑記

Java な人や C++ な人のために書いた、 C# の入門書です。 筆者の4人は、 twitter ID で書いた方が通りがいいかもしれません。 (中博俊 as @nakawankuma,  猪股健太郎 as @matarillo, 岩永信之 as @ufcpp, 山本康彦 as @biac)

初歩的なかったるい説明は飛ばして、 Java や C++ との違いに注力して解説しました。 また、 .NET Framework の使い方も、 サンプルコード満載でポイントを詳説!! 入門書と言っても、 プロのためのいわば 「機種転換訓練」 手引書になっています。 「明日から .NET の仕事をしなきゃいけなくなっちゃったよ~」 という開発者にぴったりの本です。 学校で Java や C++ を学んできた新入社員の新人研修にも最適です。

4人で分担して書きましたが、 「C# によるプログラミング入門」 で定評のある岩永 @ufcpp が最後に全体を見直して手を入れています。

どんな内容か、 本書より前書きと目次を転載しておきます。
 

† 「はじめに」 より

 C# は, こと Windows をベースにした開発では, .NET Framework との連携をベースに, 柔軟で高い能力を発揮します. 今までの開発に満足できず, C# に注目していらっしゃる方々も多いように見受けられます. いやそれどころか, 明日にでもC# で開発しなければならない方々も多くいらっしゃることと思います.

 しかし, 多少でも言語を知っておられる方々にとって, 初心者向けの文法書を一から読んでいくのは苦痛ですし, なにより時間が無駄になってしまいます.

 C# は, C++ や Java と同じく, C 言語のスタイルを踏襲したオブジェクト指向プログラミング言語です. C++ や Java に慣れた方々には, 構文的には非常にとっつきやすくできています. ただ, Delphi など, 他のスタイルのプログラミング言語を参考にした機能も少なくありませんし, C# 3.0 以降では先進的な新機能を多く追加しています. C++ や Java の経験者でも, マスターすべき点は多くなっています.

  本書は, そうした C++ や Java に慣れた方々のために, 文法の細目から使い方のポイントまで, “速攻”で理解していただくために記しました.

† 目次

■ Part 1 C#の文法 速攻入門

第1部では,C# の文法に焦点を当てて説明していき
ます.C++/Java とは似た面もありますが,異なる面
も多くあります.本書では,“速攻”で理解できるよう
に,その違いについてはアイコンを付けて詳しく説明し
ていきます.

◇ Chapter 1 C#とは
1.1 C# の特徴
1.2 .NET Framework
CLI 規格
.NET Framework上のアプリケーション開発フレームワーク
.NET Frameworkのバージョン

◇ Chapter 2 プログラム構造
2.1 基本的な構文―Hello World
2.2 コメント
2.3 名前空間
2.4 型―名前空間に属するメンバー
名前空間直下の型のアクセシビリティ
型の入れ子
2.5 Main メソッド

◇ Chapter 3 手続きの記述
3.1 式の概要
3.2 ステートメントの概要
3.3 変数の宣言
ローカル変数の確実な初期化
var(暗黙的な型指定)
dynamic(動的型付け)
ローカル定数
3.4 演算子
+ 演算子
論理演算
右シフト
オペランドの評価順序
3.5 制御構文
switchステートメント
gotoステートメント
foreachステートメント
3.6 オーバーフローのチェック
3.7 例外処理
3.8 using ステートメント
3.9 型情報
3.10 既定値
3.11 lock ステートメント
3.12 ラムダ式
3.13 クエリ式

◇ Chapter 4 型
4.1 値型と参照型の違い
4.2 組み込み型
object型
単純型
文字列型
4.3 ジェネリック

◇ Chapter 5 クラス
5.1 クラスの定義
修飾子
型パラメーター
基底型
クラス本体
5.2 アクセシビリティ̶
名前空間直下の型に対するアクセス修飾子
メンバーに対するアクセス修飾子
5.3 クラスのメンバー
フィールド
定数
コンストラクター
メソッド
反復子構文
拡張メソッド
非同期メソッド
プロパティ
インデクサー
イベント
演算子のオーバーロード
デストラクター
5.4 静的メンバー
静的コンストラクター
5.5 継承
多重継承の有無
virtual修飾子
override修飾子
sealed 修飾子
new 修飾子
抽象メンバー
フィールド初期化子とコンストラクターの実行順序
5.6 クラスの分割定義
部分メソッド
5.7 外部メソッド
5.8 匿名クラス

◇ Chapter 6 インターフェイス
6.1 インターフェイスの定義
インターフェイスとクラスの相違点
6.2 インターフェイスの実装
インターフェイスの明示的実装

◇ Chapter 7 構造体
7.1 構造体の定義
構造体とクラスの相違点
値型による振る舞い
既定値
コンストラクター/ デストラクターの制限
継承
ボックス化
7.2 クラスあるいは構造体の選択
参照型を必要とするポリモーフィズム
ヒープの性能の良さ

◇ Chapter 8 列挙型
8.1 列挙型の定義
基になる型
列挙型本体
8.2 列挙型の利用
Enum型
型変換
演算子
8.3 ビットフラグ
8.4 拡張メソッドの利用

◇ Chapter 9 デリゲート
9.1 デリゲートの定義
ActionとFunc
System.Delegate型
9.2 デリゲートの利用
互換性
マルチキャストデリゲート
非同期呼び出し
9.3 匿名関数
ラムダ式と式ツリー

◇ Chapter 10 配列
10.1 配列の利用
配列変数の定義
配列の作成
配列の要素参照
10.2 多次元配列
多次元配列と「配列の配列」
10.3 System.Array 型
10.4 配列の共変性

◇ Chapter 11 Null許容型
11.1 Null 許容型の利用
11.2 Nullable<T> 構造体
11.3 型変換
11.4 演算子

◇ Chapter 12 属性
12.1 属性の例
12.2 属性の定義
パラメーターに関する制限
属性の使用方法
12.3 属性の適用
12.4 属性値の実行時取得
12.5 C# コンパイラが使用する属性
12.6 相互運用のための属性

◇ Chapter 13 安全でないコード
13.1 ポインターとは?
13.2 「安全でないコード」の注意点
unsafe ≠ C言語
unsafe ⊂ managed
扱える範囲 ≒ マネージヒープ
13.3 unsafe コンテキスト
13.4 ポインター型
ポインター型に対する操作
ポインター型の型変換
13.5 sizeof演算子の利用
13.6 アドレスの固定化
13.7 スタックの割り当て
13.8 固定サイズバッファーの埋め込み


■ Part 2 C#のポイント 速攻入門

第2部では,C#の特徴が特に強く表れている部分や,
C++ / Java との差が大きな部分に焦点を当てて説明
していきます.
また,言語的な差だけでなく,仮想実行環境や標準ラ
イブラリに起因する差,開発者文化や設計思想的な差に
ついても少し触れます

◇ Chapter 1 ジェネリック
1.1 ジェネリックの利用方法
型パラメーター
型パラメーターの変性
型パラメーター制約
1.2 内部的な方式の比較
1.3 実装方式の比較
コード展開
型消去
C# のジェネリック
1.4 メンバー参照
1.5 強い型付け
リフレクションでジェネリックを扱う

◇ Chapter 2 定数と読み取り専用
2.1 バージョニング問題
2.2 フィールドの再代入禁止とオブジェクトの不変性
2.3 引数の既定値

◇ Chapter 3 例外処理
3.1 例外の利用場面
利用法上の例外
不可避,かつ復帰可能な例外
対処不能な例外
3.2 try-catch とtry-finally
tryステートメントの利用頻度
try-catch-finally ステートメント

◇ Chapter 4 リソース管理
4.1 ガベージコレクション
ガベージコレクションの性能向上
弱参照
4.2 デストラクター
リソースの解放
IDisposableインターフェイスの実装例

◇ Chapter 5 イベント駆動
5.1 イベント構文
イベント駆動の定型パターン̶
イベントハンドラーとしてのデリゲート
自動実装イベントの内部挙動
5.2 イベントとメモリリーク

◇ Chapter 6 暗黙的な型指定
6.1 冗長性の排除
6.2 オーバーロードとジェネリック
6.3 var と匿名型

◇ Chapter 7 データ処理
7.1 反復子構文
反復子ブロック
反復子構文の内部実装
7.2 反復子構文を使ったデータの加工
7.3 LINQ
クエリ式
標準クエリ演算子
LINQ プロバイダー
LINQ to Objects
LINQ to XML
LINQ to Entities


■ Part 3 C#活用速攻入門

別のプログラミング言語に移る際,重荷なのは,文法
よりもむしろ,ライブラリの差を覚え直すことでしょ
う.特に,C#(というよりも,.NET Framework)の
カバーする範囲は非常に広く,たいへんです.
そこで,ここから先は,目的に応じて,どういうライ
ブラリを使ってどう書くか,サンプルを示しつつ説明し
ていきます.

◇ Chapter 1 ファイルの読み書き
1.1 サンプルの内容
1.2 LINQ を使ったCSV ファイルの読み書き
1.3 ReadLines の内部挙動
1.4 LINQ を使わない例
1.5 ファイルの読み書きに関係するその他のクラス

◇ Chapter 2 GUI
2.1 簡単なGUI アプリケーションの例
2.2 GUI と非同期処理
ディスパッチャー
BackgroundWorker
2.3 視覚的デザインツールの利用
ツール生成コードの分離
ツールが解釈しやすい形式
2.4 ビューの分離

◇ Chapter 3 Webアクセス
3.1 Web ページの表示
Frameの利用例
3.2 Web アクセスのためのクラス
同期アクセス
非同期アクセス
3.3 Web サービスの利用
Visual Studioを使ったサービス参照
配信フィードの取得
XMLやJSON の取得
3.4 Web アクセスに関係するその他のクラス

◇ Chapter 4 Win32 APIとCOMの扱い
4.1 単純なP/Invoke の例
4.2 文字列を受け渡しするP/Invoke
4.3 文字列を渡す場合のその他の方法
4.4 構造体を利用したP/Invoke
4.5 COM のやり取り
4.6 MS Office などとのやり取り

◇ Chapter 5 データベースアクセス
5.1 一番シンプルなADO.NET
5.2 ExecuteReader とMARS
5.3 DataSet を使ったデータアクセス方法
5.4 DataSet などで隠蔽されたデータの行方
5.5 DataSet を使ってデータの絞り込みを行う方法
5.6 DataSet を使ったデータの更新削除
5.7 LINQ to SQL を使ってデータの絞り込みを行う方法
5.8 LINQ to SQL を使った更新方法
5.9 LINQ to SQL のその他の違い
5.10 LINQ to SQL のSELECT でストアドプロシージャを使う方法
5.11 Entity Framework を利用したデータアクセス
5.12 Entity Framework のSELECT でストアドプロシージャを使う方法
5.13 どの技術を使うのが良いのか?

◇ Chapter 6 並列処理
6.1 Thread クラスを利用する方法
6.2 同期化の方法
6.3 プロセスをまたいだ排他処理
6.4 スレッドセーフなコレクション
6.5 デリゲートを利用する方法
6.6 BackgroundWorker を利用する方法
6.7 Task を利用する方法
6.8 Parallel.For,Parallel.ForEach を利用する方法
6.9 Parallel LINQ を利用する方法

◇ Chapter 7 実行時コード生成
7.1 静的なコード
7.2 リフレクション
7.3 動的に生成したコードのキャッシュ
動的コード生成/ キャッシュの例
XMLを読み書きするコードの動的生成/ キャッシュ


トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/54000611

この記事へのトラックバック一覧です: 書籍: 〔速攻入門〕 C#プログラミング すぐに現場で使える知識:

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。