[速攻入門]C#プログラミング すぐに現場で使える知識

[表紙][速攻入門]C#プログラミング すぐに現場で使える知識

A5判/344ページ

定価(本体2,680円+税)

ISBN 978-4-7741-5016-1

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

C#の需要が高まっている現在,プログラミング現場では,C#のことを知らないプログラマーであっても,これを使う必要に迫られています。いま最もC#の知識を必要としているのは,こういった「現場のプログラマー」です。ところが,これまでの入門書は,本当に初心者向けのものか,C#の経験者向けのものだけでした。現場のプログラマーには,C#の言語仕様をコンパクトに説明し,それは実践の場でどのように使えるものなのか? どう使うとメリットがあるのか? という点を解き明かす本こそが必要です。本書が,そのニーズに応えます。

こんな方におすすめ

  • 学校などでJavaやC++を学んだことがある,現場のプログラマー
  • プログラマーとしては初中級レベルで,C#を学ぼうとする人

目次

Part 1 C#の文法 速攻入門

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 演算子
    • #NAME?
    • 論理演算
    • 右シフト
    • オペランドの評価順序
  • 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構造体
  • 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#のポイント 速攻入門

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#活用 速攻入門

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を読み書きするコードの動的生成/キャッシュ

著者プロフィール

岩永信之(いわながのぶゆき)

 

山本康彦(やまもとやすひこ)

1957 年,名古屋に生まれる。名古屋大学工学部卒(修士)。本田技術研究所で自動車の設計/研究にしばらく携わった後,ソフトウェア開発業界に転身。主にWindows系の業務システムを手掛けてきた。.NET FrameworkとC#とは,まだβ版だった2001年からの付き合い。2012年に独立し,現在はWindowsストアアプリをメインに開発している。