ポケットリファレンスシリーズC#ポケットリファレンス

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

紙版発売

四六判/488ページ

定価2,838円(本体2,580円+税10%)

ISBN 978-4-7741-4948-6

ただいま弊社在庫はございません。

本書の新版が発行されています。

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

書籍の概要

この本の概要

13年のロングセラーシリーズ・ポケットリファレンスにWindowsプログラミングの定番言語となったC#が新登場。ベーシックだけど忘れてしまいがちな書式や振る舞いをコンパクトなサイズに凝縮,逆引き形式で目的の情報をすぐ探せて,サンプルコードを見ながら具体的な実装のイメージがつかめます。対応バージョンは最新のC#4.0,『JavaScript本格入門』をはじめ数多くの著書で定評ある山田祥寛氏の全面監修。現場で役立つ信頼の1冊です。

こんな方におすすめ

  • C#プログラマ

著者の一言

ソフトウェア開発に適した言語は,C#のほかにJavaやVBなどがあります。「ソフトウェア開発に適した」とは,言語の性質も含めて開発や生産性,開発コストも含めた意味です。これらの言語は,開発者が多くインターネットの情報や書籍なども豊富ですから,開発時のトラブルに対応しやすい言語とも言えます。

ただし,情報が多いことは,時に検索性を阻害することがあることも事実です。本書の構成を作成するにあたっては,情報を引きやすくするよう心がけました。

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

しかし,JavaもC#もできる人が「JavaのCopyOnWriteArraySetみたいなものはC#にあるのかな」とか,C#の初心者が「XMLファイルを画面に表示するだけの簡単なプログラムを書きたいんだけど,何から書き始めればいいのかさっぱり」といったことは良くあることです。

本書は,目的から情報にたどり着きやすいリファレンスとするよう心がけました。初心者から習熟者に広く参考にしていただける一冊になれば幸いです。

目次

Chapter 1 C#を始めるために

  • C#とは

最初のC#プログラミング

  • 「Visual C# 2010 Express」のインストールと起動
  • コンソールアプリケーションの作成と実行

Chapter 2 基本文法

データ型

  • データ型の種類

演算子

  • 演算子

基本構文

  • コメントを記述する
  • 名前空間を定義する
  • 名前空間を参照する
  • エイリアス(別名)を定義する
  • エイリアスとクラスを区別する
  • 変数を宣言する
  • 暗黙的型指定の変数を宣言する
  • 定数を宣言する【3.5】
  • 読み取り専用のフィールドを宣言する
  • 動的型付け変数を定義する【4】
  • 型を変換する
  • 配列(1次元)を宣言する
  • 多次元配列を宣言する
  • 列挙型(enum)を定義する
  • 処理を分岐する
  • 処理を複数に分岐する
  • 複数の条件で処理を分岐する
  • 処理をくり返す
  • 処理をくり返す(ループ後に条件判定)
  • 決まった回数の処理をくり返す
  • すべての要素を順番に参照する
  • 無条件に制御を分岐する

クラス

  • クラスを定義する
  • メソッドを定義する
  • インスタンスを生成する
  • クラスのメンバにアクセスする
  • コンストラクタを定義する
  • オブジェクト初期化子を利用する
  • デストラクタを定義する
  • 引数を参照渡しする
  • メソッドの結果を引数で受け取る
  • 可変長引数を利用する
  • オプション引数/名前付き引数を定義する【4】
  • 静的メンバを定義/利用する
  • 演算子をオーバーロードする
  • インデクサを定義する
  • クラスを継承する
  • 基本クラスのコンストラクタを実行する
  • クラスの継承を禁止する
  • オーバーライドを定義する
  • メンバを隠蔽する
  • アクセス制御する
  • プロパティを定義する
  • 抽象メソッド/クラスを定義する
  • オブジェクトが指定の型に変換可能かチェックする
  • as演算子でオブジェクトを変換する
  • インタフェースを定義する
  • ジェネリックでクラス/メソッドを定義する
  • ジェネリックを制約つきで宣言する
  • ジェネリックの型を初期化する
  • クラス/メソッドを分割して定義する
  • 構造体を定義する
  • 拡張メソッドを定義する【3.5】
  • 匿名型の変数を定義する【3.5】
  • null許容型を宣言する

デリゲートとイベント

  • デリゲートを定義する
  • 匿名メソッドを定義する【3.5】
  • ラムダ式を利用する【3.5】
  • 共変性/反変性の型パラメータを利用する【4】
  • イベントを宣言する

例外処理

  • 例外処理を定義する
  • 例外を任意に発生させる
  • usingを用いてリソースを破棄する
  • オーバーフローをチェックする

Chapter 3 基本データ型の操作

  • 概要

Object型

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

数値型

  • 文字列から数値に変換する~System.Int32,Int64,Double,Decimalなど
  • 数値型の最大値/最小値を取得する~System.Int32,Int64,Double,Decimalなど

日時型

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

文字型

  • 文字の種類を判定する~System.Char
  • 文字を大文字/小文字にする~System.Char

文字列型

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

文字列バッファ

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

エンコーディング

  • エンコーディングを変換する~System.Text.Encoding
  • バイト列から文字列に変換する~System.Text.Encoding
  • 正規表現
  • 正規表現を作成する~System.Text.RegularExpressions.Regex
  • 正規表現で検索する~System.Text.RegularExpressions.Regex,Match,MatchCollection
  • 正規表現の検索オプションを指定する~System.Text.RegularExpressions.Regex
  • 正規表現のパターンをグループで指定する~System.Text.RegularExpressions.Match,GroupCollection,Group
  • 正規表現で文字列を置換する~System.Text.RegularExpressions.Regex

算術関数

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

国際化

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

Chapter 4 コレクション

  • 概要

共通機能

  • コレクションに要素を追加する~System.Collections.Generic.ICollection
  • コレクションの要素を削除する~System.Collections.Generic.ICollection
  • コレクションに要素が含まれているかどうかを判定する~System.Collections.Generic.ICollection
  • コレクションの要素の数を取得する~System.Collections.Generic.ICollection
  • コレクションを反復処理する~System.Collections.Generic.ICollection,IEnumerable
  • コレクションを配列にコピーする~System.Collections.Generic.ICollection
  • コレクションの要素が条件を満たすかどうかを判定する【3.5】~System.Linq.Enumerable
  • コレクションを連結する【3.5】~System.Linq.Enumerable
  • コレクションの重複を除去する【3.5】~System.Linq.Enumerable
  • 2つのコレクションの和集合/差集合/積集合を生成する【3.5】~System.Linq.Enumerable
  • コレクションの平均値/合計を計算する【3.5】~System.Linq.Enumerable
  • コレクションの最大値/最小値を取得する【3.5】~System.Linq.Enumerable
  • コレクションを条件でフィルタする【3.5】~System.Linq.Enumerable

リスト

  • リストを生成する~System.Collections.Generic.List
  • リストの指定位置の要素を取得/設定する~System.Collections.Generic.List
  • リストの末尾に要素を追加する~System.Collections.Generic.List
  • リストの指定位置に要素を挿入する~System.Collections.Generic.List
  • リストの要素を削除する~System.Collections.Generic.List
  • 要素の位置を取得する~System.Collections.Generic.List
  • リストを検索する~System.Collections.Generic.List
  • 別の型のリストに変換する~System.Collections.Generic.List
  • リストの要素ごとに処理する~System.Collections.Generic.List
  • リストを並べ替える~System.Collections.Generic.List
  • 二重リンクリスト

    • 二重リンクリストを生成する~System.Collections.Generic.LinkedList
    • 二重リンクリストの要素を取得する~System.Collections.Generic.LinkedList,LinkedListNode
    • 二重リンクリストに要素を追加する~System.Collections.Generic.LinkedList

    セット

    • セットを生成する~System.Collections.Generic.HashSet
    • セットとコレクションとの関係を調べる~System.Collections.Generic.HashSet

    ディクショナリ

    • ディクショナリを生成する~System.Collections.Generic.Dictionary
    • ディクショナリにキーと値を追加する~System.Collections.Generic.Dictionary
    • ディクショナリから値を取得する~System.Collections.Generic.Dictionary
    • ディクショナリに指定したキー/値が含まれるかどうかを判定する~System.Collections.Generic.Dictionary
    • キー/値のコレクションを取得する~System.Collections.Generic.Dictionary

    キュー

    • キューを生成する~System.Collections.Generic.Queue
    • キューの要素を追加/取得する~System.Collections.Generic.Queue

    スタック

    • スタックを生成する~System.Collections.Generic.Stack
    • スタックの要素を追加/取得する~System.Collections.Generic.Stack

    Chapter 5 入出力

    • 概要

    ファイルシステム

    • ファイル情報/ディレクトリ情報オブジェクトを作成する~System.IO.FileInfo,DirectoryInfo
    • ファイルを新規作成する~System.IO.File,FileInfo
    • ファイルをコピーする~System.IO.File,FileInfo
    • ファイルを削除する~System.IO.File,FileInfo
    • ファイルを移動する~System.IO.File,FileInfo
    • ディレクトリを作成する~System.IO.Directory,DirectoryInfo
    • ディレクトリを削除する~System.IO.Directory,DirectoryInfo
    • ディレクトリを移動する~System.IO.Directory,DirectoryInfo
    • ファイル/ディレクトリの存在を確認する~System.IO.File,Directory,FileInfo,DirectoryInfo
    • ファイル一覧を取得する~System.IO.Directory,DirectoryInfo
    • ディレクトリ一覧を取得する~System.IO.Directory,DirectoryInfo
    • ファイル/ディレクトリ一覧を高速に列挙する【4】~System.IO.Directory,DirectoryInfo
    • ファイル/ディレクトリの情報を取得/設定する~System.IO.File,FileInfo,Directory,DirectoryInfo
    • ドライブの情報を取得する~System.IO.DriveInfo
    • ファイルストリームを作成する~System.IO.FileStream,File

    バイナリ入出力

    • メモリストリームを作成する~System.IO.MemoryStream
    • ストリームから読み込む~System.IO.Stream
    • ストリームに書き込む~System.IO.Stream
    • ストリームをシークする~System.IO.Stream
    • ストリームの情報を取得する~System.IO.FileStream
    • ストリームをコピーする~System.IO.FileStream
    • バイナリファイルの内容を一括で読み書きする~System.IO.File
    • ストリームのリーダー/ライターを作成する~System.IO.StreamReader,StreamWriter,File
    • 文字列のリーダー/ライターを作成する~System.IO.StringReader,StringWriter
    • リーダーから読み込む~System.IO.TextReader
    • ライターに書き込む~System.IO.TextWriter

    テキスト入出力

    • テキストファイルの内容を一括で読み書きする~System.IO.File
    • テキストファイルの内容を行単位に読み込む【4】~System.IO.File

    TCP/IPネットワーク

    • ホスト名を取得する~System.Net.Dns
    • IPアドレスを取得する~System.Net.Dns,IPAddress
    • TCPソケットで接続待ちする~System.Net.Socket.TcpListener
    • TCPソケットで接続する~System.Net.Socket.TcpClient

    HTTP通信

    • URIを処理する~System.Uri
    • Webサーバーからデータをダウンロードする~System.Net.WebClient
    • Webサーバーからテキストをダウンロードする~System.Net.WebClient
    • クエリ文字列を設定する~System.Net.WebClient,System.Collections.Specialized.NameValueCollection
    • Webサーバーからファイルをダウンロードする~System.Net.WebClient
    • WebサーバーにPOSTデータを送信する~System.Net.WebClient

    Chapter 6 ユーティリティ

    • 概要

    スレッド

    • 引数のない処理をスレッドとして定義する~System.Threading.Thread
    • 引数を受け取る処理をスレッドとして定義する~System.Threading.Thread
    • スレッドタイマーでスレッドを制御する~System.Threading.Timer
    • システムタイマーでスレッドを制御する~System.Timers.Timer
    • 別スレッドの処理結果を利用する【4】~System.Threading.Tasks.Task
    • スレッドを停止/再開する~System.Threading.AutoResetEvent,Thread
    • スレッドの状態を確認/中止する~System.Threading.Thread
    • スレッドの優先順位を決める~System.Threading.Thread
    • 非同期処理実行後の動作を設定する~System.IAsyncResult,Delegate
    • 非同期処理の結果を利用する~System.Threading.WaitHandle,System.IAsyncResult

    システムツール

    • システム一意のインデックスを取得する~System.Guid
    • 乱数を利用する~System.Random
    • MD5ハッシュを計算する~System.Security.Cryptography.MD5CryptoServiceProvider
    • SHA1ハッシュを計算する~System.Security.Cryptography.HMACSHA1

    環境情報

    • 実行環境の環境変数を取得する~System.Environment
    • 実行環境の環境属性を取得する~System.Environment,OperatingSystem,Version
    • レジストリの値を取得する~Microsoft.Win32.Registry,RegistryKey
    • レジストリの値を設定/削除する~Microsoft.Win32.RegistryKey,System.Security.AccessControl
    • アクティブディレクトリの情報を利用する~System.DirectoryServices.DirectoryEntry,DirectoryEntries

    Chapter 7 データベースアクセス

    • 概要

    接続型データアクセス

    • データベースに接続/切断する~System.Data.SqlClient.SqlConnection
    • 設定ファイルの接続文字列を取得する~System.Configuration.ConfigurationManager,ConnectionStringSettings
    • SQL文を実行するオブジェクトを生成する~System.Data.SqlClient.SqlCommand
    • 結果データを返すSQL文を発行する~System.Data.SqlClient.SqlCommand
    • 単一の値を取得するSQL文を発行する~System.Data.SqlClient.SqlCommand
    • 結果データから値を取得する~System.Data.SqlClient.SqlDataReader
    • 複数の結果データを取得する~System.Data.SqlClient.SqlDataReader
    • 更新系のSQL文を発行する~System.Data.SqlClient.SqlCommand
    • パラメータ付きSQL文を発行する~System.Data.SqlClient.SqlCommand,SqlParameterCollection,SqlParameter
    • ストアドプロシージャを実行する~SqlCommand
    • ストアドプロシージャで出力パラメータを使用する~System.Data.SqlClient.SqlParameter

    トランザクション制御

    • トランザクションオブジェクトを作成する~System.Data.SqlClient.SqlConnection
    • トランザクションをコミット/ロールバックする~System.Data.SqlClient.SqlTransaction
    • トランザクションスコープを作成する~System.Transactions.TransactionScope

    非接続型データアクセス

    • データアダプターを生成する~System.Data.SqlClient.SqlDataAdapter
    • データセットにデータを流し込む~System.Data.SqlClient.SqlDataAdapter
    • データセットのデータを使用する~System.Data.DataSet,DataTableCollection,DataTable,DataRowCollection,DataRow
    • 更新用コマンドを自動生成する~System.Data.SqlClient.SqlDataAdapter,SqlCommandBuilder
    • データセットを使用して更新する~System.Data.SqlClient.SqlDataAdapter
    • ADO.NET Entity Framework(Code First)

      • Code Firstを使用するためのエンティティクラスを定義する~System.Data.Entity.DbContext,DbSet
      • Code Firstを使用するためのコンテキストクラスを定義する【4】~.System.Data.Entity.DbContext,DbSet
      • Code Firstを使用してデータベースを作成する【4】~.System.Data.Entity.DbContext,DbSet

      LINQ to Entities

      • LINQのクエリ式構文/メソッド構文を記述する【3.5】~System.Linq.Enumerable,System.Linq.Queryable
      • クエリを即時実行する【3.5】~System.Linq.Enumerable
      • 結果セットから射影する【3.5】~System.Linq.Queryable
      • 結果セットをフィルターする【3.5】~System.Linq.Queryable
      • キープロパティでエンティティを結合する【3.5】~System.Linq.Queryable
      • 結果セットの要素のすべて/どれかが条件を満たしているか確認する【3.5】~System.Linq.Queryable
      • 結果セットに指定した要素が含まれていることを確認する【3.5】~System.Linq.Queryable
      • 結果セットから重複を取り除く【3.5】~System.Linq.Queryable
      • 結果セットの並べ替えをする【3.5】~System.Linq.Queryable
      • 結果セットをグループ化する【3.5】~System.Linq.Queryable
      • 結果セットの集計をする【3.5】~System.Linq.Queryable
      • 結果セットの特定の要素を抽出する【3.5】~System.Linq.Queryable

      Chapter 8 Windowsアプリケーション

      • 概要

      Windowsフォームアプリケーション

      • テキストボックス/マスク付きテキストボックスを利用する~System.Windows.Forms.TextBoxBase,MaskedTextBox,Control
      • リッチテキストボックスを利用する~System.Windows.Forms.RichTextBox
      • リストボックスを作成する~System.Windows.Forms.ListBox
      • 月別カレンダーを利用する~System.Windows.Forms.MonthCalendar
      • 日付選択ボックスを作成する~System.Windows.Forms.DateTimePicker
      • リンクラベルを利用する~System.Windows.Forms.LinkLabel
      • ブラウザーコントロールを利用する~System.Windows.Forms.WebBrowser

      WPFアプリケーション

      • WPFで表形式にレイアウトする【3】~System.Windows.Controls.Grid
      • WPFで要素を大まかにレイアウトする【3】~System.Windows.Controls.DockPanel,WrapPanel
      • WPFで表示順序の決まった要素をレイアウトをする【3】~System.Windows.Controls.StackPanel
      • 子要素を厳密に位置決めをして配置する【3】~System.Windows.Controls.Canvas
      • 画面の要素の表示領域を設定する【3】~System.Windows.Controls.Border,Viewbox,ScrollViewer

    著者プロフィール

    WINGSプロジェクト

    有限会社 WINGSプロジェクトが運営する,テクニカル執筆コミュニティ(代表:山田祥寛)。主にWeb開発分野の書籍/記事執筆,翻訳,講演等を幅広く手がける。2011年11月時点での登録メンバは38名で,現在も執筆メンバを募集中。興味のある方は,どしどし応募頂きたい。著書,記事多数。

    http://www.wings.msn.to/

    RSS:http://www.wings.msn.to/contents/rss.php

    Twitter:@yyamada(公式),@yyamada/wings(メンバーリスト)

    Facebook:facebook.com/WINGSProject

    Blog:http://www.xfruits.com/wings/?id=108847


    土井毅(どいつよし)

    第3,4,5章担当

    WINGS プロジェクト所属のテクニカルライター。@IT(ITMedia),CodeZine(翔泳社)などのWebメディアを中心として,.NETなどのWeb系技術についての執筆を行っている。また,携帯アプリやソーシャルアプリなど,様々な分野での開発案件にも携わる。

    主な著書に『はじめてのASP.NET 4プログラミング Visual C#編/ Visual Basic編』(秀和システム,共著),『Pocket 詳解 Perl/CGI 辞典』(秀和システム),『Visual Studio 2010 スタートアップガイド』(翔泳社,共著)がある。


    髙江賢(たかえけん)

    第1,2章担当

    生粋の大阪人。プログラミング歴は四半世紀を超え,制御系から業務系,Web系と幾多の開発分野を経験。現在は,株式会社気象工学研究所に勤務。気象と防災に関わるシステムの構築に携わる。その傍ら,執筆コミュニティ「WINGSプロジェクト」のメンバーとして活動中。

    主な著作は『Javaポケットリファレンス』(技術評論社),『Apacheポケットリファレンス』(技術評論社),『改訂3版 基礎PHP(インプレスジャパン)』『文法からはじめるプログラミング言語 Microsoft Visual C#入門』(日経BPソフトプレス)など。


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

    第7章担当

    WINGSプロジェクト所属のテクニカルライター。東京都立大学大学院理学研究科修士課程修了。2003年より,ソフトハウスにて,自社製品パッケージ製品のMicrosoft Visioアドインソフトの開発に携わる。2008年5月,システム開発会社に転職し現在に至る。Java,C#,VB.NET,MOSS2007での開発/テスト経験がある。ASP.NETでのWebシステムの開発や開発環境の社内/グループ企業への展開/普及活動を経て,現在は,Linux系サーバーの維持管理作業をしている。

    主な著書は『はじめての Visual Studio 2010』(秀和システム,共著)。


    髙尾哲朗(たかおてつろう)

    第6,8章担当

    WINGSプロジェクト所属のテクニカルライター。静岡県立富士東高等学校を1980年に卒業。職を転々としながら1989年に個人事業主として独立。1992年から,Macromedia DirectorでLingoを使ったソフトウェア制作を行う。1998年に『これからはじめる人のための Excel97 VBA Q&A ベストセレクション』(ユニゾン編著)の執筆者としてWindowsの世界に入り,現在はWindows Phoneアプリケーションの開発やシステム導入時の業者選定までの情シスサポートを数社に対して行っている。Microsoft MVP for Client App Dev。

    主な著書は『はじめて使う ASP ~ Active Server Pages ~のすべて』(ソシム)。


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

    千葉県鎌ヶ谷市在住のフリーライター。Microsoft MVP for ASP.NET。執筆コミュニティ「WINGS プロジェクト」代表。書籍執筆を中心に,雑誌/サイト記事,取材,講演までを手がける多忙な毎日。

    主な著書に『Ruby on Rails 3アプリケーションプログラミング』『JavaScript本格入門』(以上,技術評論社),『10日でおぼえる入門教室シリーズ(jQuery・ASP.NET・JSP/サーブレット・PHP5・XML)』『独習シリーズ(サーバサイドJava・PHP・ASP.NET)』『PEAR入門』『Smarty入門』(以上,翔泳社),『Windows Azure実践クラウドプログラミング』『ASP.NET MVC実践プログラミング』(以上,秀和システム),『Catalyst完全入門』『基礎Perl』(以上,インプレス)など。