ポケットリファレンスシリーズ[改訂新版]C#ポケットリファレンス

[表紙][改訂新版]C#ポケットリファレンス

紙版発売
電子版発売

四六判/512ページ

定価2,904円(本体2,640円+税10%)

ISBN 978-4-7741-9030-3

電子版

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

書籍の概要

この本の概要

2011年刊行のロングセラーを,最新のVisual Studio 2017,C# 7に合わせて増補改訂。「逆引きだから目的別にすぐ探せる」「サンプルコードで具体的にイメージがすぐできる」「困ったときに,かゆいところに手が届くような使い心地」という特長はそのままに,これまでのC#4.0はもちろん,C# 5.0~C#7の新機能もフォローしてアップデートしました。今どきのユーザビリティに必須の「非同期処理」については,全面新規書き下ろしにて丁寧に解説。C#プログラマなら持っておきたい,現場で使える1冊です。

こんな方におすすめ

  • C#プログラマー

著者の一言

C#は,2000年に初期バージョン1.0がリリースされてから,すでに15年以上を経た実績ある言語です。デスクトップアプリをはじめとして,Webアプリ,Webサービス,はたまたAndroid/iOSに対応したモバイルアプリまで,幅広い分野で活用されている言語です。

開発者も多く,インターネットの情報や書籍なども豊富なので,開発時のトラブルに対応しやすい言語でもあります。ただし,情報が多いことは,時に検索性を阻害することがあることも事実です。本書の構成を作成するにあたっては,情報を引きやすくするよう心がけました。

C#というと,主にWindows環境でのビジネスアプリ開発のシーンが多く,マルチプラットフォームで稼働するJavaと比較されることもあります。開発には,サーバーサイド開発,クライアント開発,製品開発,コンポーネント開発など,それぞれ異なる特性を必要とする開発があるので,案件に合致した言語を選択すればよいと思います。

しかし,JavaもC#もできる人が「JavaのCopyOnWriteArraySetみたいなものはC#にあるのかな」とか,C#の初心者が「XMLファイルを画面に表示するだけのかんたんなプログラムを書きたいんだけど,何から書き始めればいいのかさっぱり」といったことはよくあることです。本書は,目的から情報にたどり着きやすいリファレンスとするよう心がけました。初心者から習熟者に広く参考にしていただける1冊になれば幸いです。

(本書「はじめに」より)

著者・監修者プロフィール

WINGSプロジェクト

有限会社WINGSプロジェクトが運営する,テクニカル執筆コミュニティ(代表:山田祥寛)。主にWeb開発分野の書籍/記事執筆,翻訳,講演等を幅広く手がける。2017年5 月時点での登録メンバーは約50名で,現在も執筆メンバーを募集中。興味のある方は,どしどし応募頂きたい。著書,記事多数。
ホームページ:http://www.wings.msn.to/
RSS:http://www.wings.msn.to/contents/rss.php
Twitter(公式):@yyamada
Twitter(メンバーリスト):@yyamada/wings
Facebook:WINGSProject

土井毅(どいつよし)

第 3,4,5 章担当。
WINGSプロジェクト所属のテクニカルライター。@IT(アイティメディア社),CodeZine(翔泳社)などの Web メディアを中心として,.NETなどのWeb系技術についての執筆を行っている。また,携帯アプリやソーシャルアプリなど,様々な分野での開発案件にも携わる。
主な著書:『基本から学ぶHTML5+JavaScript iPhone/Android対応スマートフォンアプリの作り方』(共著,SBクリエイティブ)『TECHNICAL MASTERはじめてのASP.NET Webフォームアプリ開発C# /Visual Basic対応版』(秀和システム)など。

髙江賢(たかえけん)

第 1,2 章担当。
生粋の大阪人。プログラミング歴は四半世紀を超え,制御系から業務系,Web系と幾多の開発分野を経験。現在は,株式会社気象工学研究所に勤務し,気象や防災に関わるシステムの構築,保守に携わる。その傍ら,執筆コミュニティ「WINGSプロジェクト」のメンバーとして活動中。
主な著書:『[改訂新版]Javaポケットリファレンス』『Apacheポケットリファレンス』『PHPライブラリ&サンプル実践活用 [ 厳選 100]』(以上,技術評論社)『アプリを作ろう! Android入門 Android Studio版』(日経 BP 社)など。

飯島聡(いいじまさとし)

第 6,7 章担当。
WINGSプロジェクト所属のテクニカルライター。東京都立大学院理学研究科数学専攻修士課程修了。2003 年よりソフト開発会社でJavaやC#,VB.NETでパッケージソフト開発に従事。その後SI子会社でいくつかのシステム開発プロジェクトに従事などを経て,現在,ソフト開発会社でC#でWPFアプリケーションの開発に従事。
主な著書:『Windows 8開発ポケットリファレンス』(共著,技術評論社)『はじめてのVisual Studio 2012』(共著,秀和システム)など。

山田祥寛(やまだよしひろ)

監修。
千葉県鎌ヶ谷市在住のフリーライター。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」の代表でもある。
主な著書:『改訂新版JavaScript本格入門』『Ruby on Rails 5アプリケーションプログラミング』(以上,技術評論社)『独習(サーバサイドJava・PHP・ASP.NET)シリーズ』(翔泳社)『ASP.NET MVC 5 実践プログラミング』(秀和システム)『書き込み式SQLのドリル』(日経 BP 社)など。

目次

  • はじめに
  • 本書の使い方

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を用いてリソースを破棄する
    • オーバーフローをチェックする

    Chapter 3 基本データ型の操作

    • 概要

    Object型

    • オブジェクトが等しいかどうかを判断する
    • オブジェクトの文字列表現を取得する

    数値型

    • 文字列から数値に変換する
    • 数値型の最大値/最小値を取得する

    日時型

    • 現在の日時情報を取得する
    • 書式付きで文字列に変換する
    • 文字列から日時型を作成する
    • 日時情報を比較する
    • 日時情報の加算/減算を行う
    • カレンダーを取得する
    • 元号を表示する

    文字型

    • 文字の種類を判定する
    • 文字を大文字/小文字にする

    文字列型

    • 文字列を連結する
    • 文字列の長さを取得する
    • 文字列から文字や部分文字列を取得する
    • 指定文字列を挟んで連結する
    • 文字列を分割する
    • 文字列を含むかどうかを判定する
    • 文字列を検索する
    • 先頭/末尾の文字列を検索する
    • 文字列を整形する
    • 文字列を比較する
    • 文字列を置換する
    • 文字列を挿入する
    • 文字列を削除する
    • 文字列が空かどうかを判定する
    • 左寄せ/右寄せする
    • 大文字化/小文字化する
    • 前後の空白を削除する

    文字列バッファ

    • 可変の文字列バッファを作成する
    • 文字列バッファの末尾に追加する
    • 文字列バッファに文字列を挿入する
    • 文字列バッファの文字列を置換する
    • 文字列バッファの文字列を削除する
    • 文字列バッファの文字列の長さを取得/設定する
    • 文字列バッファの指定位置の文字を取得/設定する
    • 文字列バッファの容量を操作する

    エンコーディング

    • エンコーディングを変換する
    • バイト列から文字列に変換する

    正規表現

    • 正規表現を作成する
    • 正規表現で検索する
    • 正規表現の検索オプションを指定する
    • 正規表現のパターンをグループで指定する
    • 正規表現で文字列を置換する

    算術関数

    • 絶対値を求める
    • 三角関数を利用する
    • 大小を比較する
    • 切り捨て/切り上げ/四捨五入する
    • 平方根/累乗を求める
    • 指数/対数を利用する
    • 符号を取得する

    国際化

    • カルチャ情報を取得/生成する
    • カルチャ情報をカスタマイズする

    システムツール

  • システム一意のインデックスを取得する
  • 乱数を利用する
  • MD5ハッシュを計算する
  • SHA-1,SHA-2ハッシュを計算する

環境情報

  • 実行環境の環境変数を取得する
  • 実行環境の環境属性を取得する
  • レジストリの値を取得する
  • レジストリの値を設定/削除する
  • 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のクエリ式構文/メソッド構文を記述する
  • クエリを即時実行する
  • 結果セットから射影する
  • 結果セットをフィルターする
  • キープロパティでエンティティを結合する
  • 結果セットの要素のすべて/どれかが条件を満たしているか確認する
  • 結果セットに指定した要素が含まれていることを確認する
  • 結果セットから重複を取り除く
  • 結果セットの並べ替えをする
  • 結果セットをグループ化する
  • 結果セットの集計をする
  • 結果セットの特定の要素を抽出する
  • 索引