目次
- はじめに
- 本書の使い方
Chapter 1 C#を始めるために
- C#とは
最初のC#プログラミング
- 「Visual Studio Community 2017」のインストールと起動
- コンソールアプリケーションの作成と実行
Chapter 2 基本文法
- データ型の種類
- 演算子
- コメントを記述する
- 名前空間を定義する
- 名前空間を参照する
- クラス名を省略して参照する[C# 6]
- エイリアス(別名)を定義する
- エイリアスとクラスを区別する
- 変数を宣言する
- 暗黙的型指定の変数を宣言する[C# 3.0]
- 定数を宣言する
- 読み取り専用のフィールドを宣言する
- 動的型付け変数を定義する
- 型を変換する
- 配列(1次元)を宣言する
- 多次元配列を宣言する
- 列挙型(enum)を定義する
- 処理を分岐する
- 処理を複数に分岐する
- 複数の条件で処理を分岐する
- 型や条件式で処理を分岐する[C# 7]
- 処理をくり返す
- 処理をくり返す(ループ後に条件判定)
- 決まった回数の処理をくり返す
- すべての要素を順番に参照する
- 無条件に制御を分岐する
- 複数のデータ型をまとめて定義する[C# 7]
- クラスを定義する
- メソッドを定義する
- ローカル関数を定義する[C# 7]
- インスタンスを生成する
- クラスのメンバにアクセスする
- コンストラクタを定義する
- オブジェクト初期化子を利用する
- インデックス初期化子を利用する[C# 7]
- デストラクタを定義する
- 引数を参照渡しする
- メソッドの結果を引数で受け取る
- 可変長引数を利用する
- オプション引数/名前付き引数を定義する[C# 4.0]
- 参照による戻り値を定義する[C# 7]
- 静的メンバを定義/利用する
- 演算子をオーバーロードする
- インデクサを定義する
- クラスを継承する
- 基本クラスのコンストラクタを実行する
- クラスの継承を禁止する
- オーバーライドを定義する
- メンバを隠蔽する
- アクセス制御する
- プロパティを定義する
- 自動プロパティを定義する[C# 6]
- 抽象メソッド/クラスを定義する
- オブジェクトが指定の型に変換可能かチェックする
- is演算子で指定の型の変数を作成する[C# 7]
- as演算子でオブジェクトを変換する
- インタフェースを定義する
- ジェネリックでクラス/メソッドを定義する
- ジェネリックを制約つきで宣言する
- ジェネリックの型を初期化する
- クラス/メソッドを分割して定義する
- 構造体を定義する
- 拡張メソッドを定義する[C# 3.0]
- 匿名型の変数を定義する[C# 3.0]
- null許容型を宣言する[C# 2.0]
- デリゲートを定義する
- 匿名メソッドを定義する[C# 2.0]
- ラムダ式を利用する[C# 3.0]
- クラスの定義でラムダ式を利用する[C# 6]
- 共変性/反変性の型パラメータを利用する[C# 4.0]
- イベントを宣言する
- async/awaitで非同期処理を定義する[C# 5.0]
- 例外処理を定義する
- 例外を任意に発生させる
- 条件で例外を捕捉する[C# 6]
- usingを用いてリソースを破棄する
- オーバーフローをチェックする
- 概要
- オブジェクトが等しいかどうかを判断する
- オブジェクトの文字列表現を取得する
- 文字列から数値に変換する
- 数値型の最大値/最小値を取得する
- 現在の日時情報を取得する
- 書式付きで文字列に変換する
- 文字列から日時型を作成する
- 日時情報を比較する
- 日時情報の加算/減算を行う
- カレンダーを取得する
- 元号を表示する
- 文字の種類を判定する
- 文字を大文字/小文字にする
- 文字列を連結する
- 文字列の長さを取得する
- 文字列から文字や部分文字列を取得する
- 指定文字列を挟んで連結する
- 文字列を分割する
- 文字列を含むかどうかを判定する
- 文字列を検索する
- 先頭/末尾の文字列を検索する
- 文字列を整形する
- 文字列を比較する
- 文字列を置換する
- 文字列を挿入する
- 文字列を削除する
- 文字列が空かどうかを判定する
- 左寄せ/右寄せする
- 大文字化/小文字化する
- 前後の空白を削除する
- 可変の文字列バッファを作成する
- 文字列バッファの末尾に追加する
- 文字列バッファに文字列を挿入する
- 文字列バッファの文字列を置換する
- 文字列バッファの文字列を削除する
- 文字列バッファの文字列の長さを取得/設定する
- 文字列バッファの指定位置の文字を取得/設定する
- 文字列バッファの容量を操作する
- エンコーディングを変換する
- バイト列から文字列に変換する
- 正規表現を作成する
- 正規表現で検索する
- 正規表現の検索オプションを指定する
- 正規表現のパターンをグループで指定する
- 正規表現で文字列を置換する
- 絶対値を求める
- 三角関数を利用する
- 大小を比較する
- 切り捨て/切り上げ/四捨五入する
- 平方根/累乗を求める
- 指数/対数を利用する
- 符号を取得する
- カルチャ情報を取得/生成する
- カルチャ情報をカスタマイズする
- システム一意のインデックスを取得する
- 乱数を利用する
- MD5ハッシュを計算する
- SHA-1,SHA-2ハッシュを計算する
データ型
演算子
基本構文
クラス
デリゲートとイベント
例外処理
Chapter 3 基本データ型の操作
Object型
数値型
日時型
文字型
文字列型
文字列バッファ
エンコーディング
正規表現
算術関数
国際化
システムツール
環境情報
- 実行環境の環境変数を取得する
- 実行環境の環境属性を取得する
- レジストリの値を取得する
- レジストリの値を設定/削除する
- ActiveDirectoryの情報を利用する
Chapter 4 コレクション
- 概要
共通機能
- コレクションに要素を追加する
- コレクションの要素を削除する
- コレクションに要素が含まれているかどうかを判定する
- コレクションの要素の数を取得する
- コレクションを反復処理する
- コレクションを配列にコピーする
- コレクションの要素が条件を満たすかどうかを判定する
- コレクションを連結する
- コレクションの重複を除去する
- 2つのコレクションの和集合/差集合/積集合を生成する
- コレクションの平均値/合計を計算する
- コレクションの最大値/最小値を取得する
- コレクションを条件でフィルタする
リスト
- リストを生成する
- リストの指定位置の要素を取得/設定する
- リストの末尾に要素を追加する
- リストの指定位置に要素を挿入する
- リストの要素を削除する
- 要素の位置を取得する
- リストを検索する
- 別の型のリストに変換する
- リストの要素ごとに処理する
- リストを並べ替える
二重リンクリスト
- 二重リンクリストを生成する
- 二重リンクリストの要素を取得する
- 二重リンクリストに要素を追加する
セット
- セットを生成する
- セットとコレクションとの関係を調べる
ディクショナリ
- ディクショナリを生成する
- ディクショナリにキーと値を追加する
- ディクショナリから値を取得する
- ディクショナリに指定したキー/値が含まれるかどうかを判定する
- キー/値のコレクションを取得する
キュー
- キューを生成する
- キューの要素を追加/取得する
スタック
- スタックを生成する
- スタックの要素を追加/取得する
Chapter 5 入出力
- 概要
ファイルシステム
- ファイル情報/ディレクトリ情報オブジェクトを作成する
- ファイルを新規作成する
- ファイルをコピーする
- ファイルを削除する
- ファイルを移動する
- ディレクトリを作成する
- ディレクトリを削除する
- ディレクトリを移動する
- ファイル/ディレクトリの存在を確認する
- ファイル一覧を取得する
- ディレクトリ一覧を取得する
- ファイル/ディレクトリ一覧を高速に列挙する
- ファイル/ディレクトリの情報を取得/設定する
- ドライブの情報を取得する
- ファイルストリームを作成する
バイナリ入出力
- メモリストリームを作成する
- ストリームから読み込む
- ストリームに書き込む
- ストリームをシークする
- ストリームの情報を取得する
- ストリームをコピーする
- バイナリファイルの内容を一括で読み書きする
テキスト入出力
- ストリームのリーダー/ライターを作成する
- 文字列のリーダー/ライターを作成する
- リーダーから読み込む
- ライターに書き込む
- テキストファイルの内容を一括で読み書きする
- テキストファイルの内容を行単位に読み込む
TCP/IPネットワーク
- ホスト名を取得する
- IPアドレスを取得する
- TCPソケットで接続待ちする
- TCPソケットで接続する
HTTP通信
- URIを処理する
- Webサーバーからデータをダウンロードする
- Webサーバーからテキストをダウンロードする
- クエリ文字列を設定する
- Webサーバーからファイルをダウンロードする
- WebサーバーにPOSTデータを送信する
Chapter 6 非同期処理
- 概要
スレッドによる非同期処理
- 引数のない処理をスレッドとして定義する
- 引数を受け取る処理をスレッドとして定義する
- スレッドタイマーで一定時間ごとに処理をする
- システムタイマーで一定時間ごとに処理をする
- スレッドを待機/再開させる
- スレッドを中止する
Taskによる非同期処理の作成/実行
- 非同期処理を作成して開始する
- 非同期処理から値を返す
- 非同期処理の依存関係を指定する
- 非同期処理が実行されるスレッドを限定する
非同期処理の制御
- 非同期処理を行う
- 非同期処理の状態を取得する
- 入れ子の非同期操作を解除する
- 非同期処理完了後の継続処理を設定する
- 指定時間後に完了するだけの処理を作成する
- 非同期処理の完了を待つ
- 複数の非同期処理すべての完了を待つ
- 複数の非同期処理いずれかの完了を待つ
- 制御を返し非同期に残りの処理を行う
- 非同期処理をキャンセルする
- 非同期処理の進行状況を報告する
- 非同期処理の例外を処理をする
Chapter 7 データベースアクセス
- 概要
接続型データアクセス
- データベースに接続/切断する
- データベースに接続する(非同期版)
- 設定ファイルの接続文字列を取得する
- SQL文を実行するオブジェクトを生成する
- 結果データを返すSQL文を発行する
- 結果データを返すSQL文を発行する(非同期版)
- 単一の値を取得する SQL文を発行する
- 結果データから値を取得する
- 結果データから値を取得する(非同期版)
- 複数の結果データを取得する
- 更新系のSQL文を発行する
- パラメータ付きSQL文を発行する
- ストアドプロシージャを実行する
- ストアドプロシージャで出力パラメータを使用する
トランザクション制御
- トランザクションオブジェクトを作成する
- トランザクションをコミット/ロールバックする
- トランザクションスコープを作成する
非接続型データアクセス
- データアダプターを生成する
- データセットにデータを流し込む
- データセットのデータを使用する
- 更新用コマンドを自動生成する
- データセットを使用して更新する
ADO.NET Entity Framework(Code First)
- Code Firstを使用するためのエンティティクラスを定義する
- Code Firstを使用するためのコンテキストクラスを定義する
- Code Firstを使用してデータベースを作成する
LINQ to Entities
- LINQのクエリ式構文/メソッド構文を記述する
- クエリを即時実行する
- 結果セットから射影する
- 結果セットをフィルターする
- キープロパティでエンティティを結合する
- 結果セットの要素のすべて/どれかが条件を満たしているか確認する
- 結果セットに指定した要素が含まれていることを確認する
- 結果セットから重複を取り除く
- 結果セットの並べ替えをする
- 結果セットをグループ化する
- 結果セットの集計をする
- 結果セットの特定の要素を抽出する
- 索引