書籍概要

ポケットリファレンス

[改訂第3版]C#ポケットリファレンス

著者
発売日
更新日

概要

C#プログラマ必携のロングセラー,「C#ポケットリファレンス」の第3版が登場! 前版の発売から7年が経ち,C#はWindowsのみならず様々なプラットフォームのアプリケーション開発で使われるようになりました。そんな最新の「C# 12」「.NET 8」「Visual Studio 2022」に合わせて内容をアップデート。「逆引きだから目的別にすぐ探せる」「サンプルコードで具体的にすぐイメージができる」「困ったときに,かゆいところに手が届くような使い心地」という特長はそのままに,エンティティ型についての大幅加筆など,「C# 8」以降の最新機能に対応しました。C#プログラマなら持っておきたい,現場で使える1冊です。

こんな方におすすめ

  • C#でできることを目的から知りたい/てっとり早く俯瞰したいエンジニア

サンプル

samplesamplesamplesample

目次

Chapter 1 C#を始めるために

  • C# とは

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

  • 「Visual Studio Community 2022」のインストールと起動
  • コンソールアプリケーションの作成と実行

Chapter 2 基本文法

データ型

  • データ型の種類

演算子

  • 演算子

基本構文

  • コメントを記述する
  • 名前空間を定義する
  • 名前空間を参照する
  • クラス名を省略して参照する
  • エイリアス(別名)を定義する
  • エイリアスとクラスを区別する
  • 最上位レベルのステートメントを利用する
  • 変数を宣言する
  • 暗黙的型指定の変数を宣言する
  • 定数を宣言する
  • 読み取り専用のフィールドを宣言する
  • 動的型付け変数を定義する
  • 型を変換する
  • 配列(1次元)を宣言する
  • 配列に範囲アクセスする
  • 多次元配列を宣言する
  • 列挙型(enum)を定義する
  • 処理を分岐する
  • 処理を複数に分岐する
  • 複数の条件で処理を分岐する
  • 使用しない変数/引数を破棄する
  • 複数の条件で値を返す
  • パターンマッチングでデータを識別する
  • 処理をくり返す
  • 処理をくり返す(ループ後に条件判定)
  • 決まった回数の処理をくり返す
  • すべての要素を順番に参照する
  • 無条件に制御を分岐する
  • 複数のデータ型をまとめて定義する

クラス

  • クラスを定義する
  • メソッドを定義する
  • イテレーターを使って反復処理を行う
  • 非同期イテレーターで反復処理を行う
  • ローカル関数を定義する
  • 静的ローカル関数を定義する
  • インスタンスを生成する
  • クラスのメンバにアクセスする
  • コンストラクタを定義する
  • プライマリコンストラクタを定義する
    [C# 12]
  • オブジェクト初期化子を利用する
  • インデックス初期化子を利用する
  • デストラクタを定義する
  • 引数を参照渡しする
  • メソッドの結果を引数で受け取る
  • 可変長引数を利用する
  • オプション引数/名前付き引数を定義する
  • 参照による戻り値や変数を定義する
  • 静的メンバを定義/利用する
  • 演算子をオーバーロードする
  • インデクサを定義する
  • クラスを継承する
  • 基本クラスのコンストラクタを実行する
  • クラスの継承を禁止する
  • オーバーライドを定義する
  • メンバを隠蔽する
  • アクセス制御する
  • プロパティを定義する
  • 自動プロパティを定義する
  • 抽象メソッド/クラスを定義する
  • オブジェクトが指定の型に変換可能かチェックする
  • is演算子で指定の型の変数を作成する
  • as演算子でオブジェクトを変換する
  • インタフェースを定義する
  • インタフェースの既定の動作を定義する
  • ジェネリックでクラス/メソッドを定義する
  • ジェネリックを制約つきで宣言する
  • ジェネリックの型を初期化する
  • クラス/メソッドを分割して定義する
  • 構造体を定義する
  • メソッドのオーバーロード
  • レコード型を定義する
  • レコード型や構造体,匿名型を複製する
    [C# 10]
  • 拡張メソッドを定義する
  • 匿名型の変数を定義する
  • null許容型を宣言する
  • null許容参照型を宣言する

デリゲートとイベント

  • デリゲートを定義する
  • 匿名メソッドを定義する
  • ラムダ式を利用する
  • 静的匿名関数/静的ラムダ式を定義する
  • クラスの定義でラムダ式を利用する
  • 共変性/反変性の型パラメータを利用する
  • イベントを宣言する
  • async/awaitで非同期処理を定義する
  • 例外処理を定義する
  • 例外を任意に発生させる
  • 条件で例外を捕捉する
  • usingを用いてリソースを破棄する
  • オーバーフローをチェックする

Chapter 3 基本データ型の操作

  • 概要

Object型

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

数値型

  • 文字列から数値に変換する
    System.Int32,Int64,Double,Decimalなど

日時型

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

文字型

  • 文字の種類を判定する
    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.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

JSON入出力

  • オブジェクトをJSON 文字列に変換する
    System.Text.Json.JsonSerializer,System.Text.Json.JsonSerializerOptions,System.Text.Encodings.Web.JavaScriptEncoder,System.Text.Unicode.UnicodeRanges
  • JSON 文字列をオブジェクトに変換する
    System.Text.Json.JsonSerializer

算術関数

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

国際化

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

システムツール

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

環境情報

  • 実行環境の環境変数を取得する
    System.Environment
  • 実行環境の環境属性を取得する
    System.Environment,OperatingSystem,Version
  • レジストリの値を取得する
    Microsoft.Win32.Registry,RegistryKey
  • レジストリの値を設定/削除する
    Microsoft.Win32.RegistryKey,System.Security.AccessControl

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
  • コレクションの要素が条件を満たすかどうかを判定する
    System.Linq.Enumerable
  • コレクションを連結する
    System.Linq.Enumerable
  • コレクションの重複を除去する
    System.Linq.Enumerable
  • 2つのコレクションの和集合/差集合/積集合を生成する
    System.Linq.Enumerable
  • コレクションの平均値/合計を計算する
    System.Linq.Enumerable
  • コレクションの最大値/最小値を取得する
    System.Linq.Enumerable
  • コレクションを条件でフィルタする
    System.Linq.Enumerable
  • コレクションの一部を取り出す(範囲アクセス)
    System.Range, System.Index
  • 高速なデータ読み書きを行う
    System.Span,System.ReadOnlySpan,System.MemoryExtensions

リスト

  • リストを生成する
    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.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
  • ファイル/ディレクトリ一覧を高速に列挙する
    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
  • テキストファイルの内容を行単位に読み込む
    System.IO.File

TCP/IPネットワーク

  • TCPソケットで接続待ちする
    System.Net.Sockets.TcpListener
  • TCPソケットで接続する
    System.Net.Sockets.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.Threading.Timer
  • スレッドを待機/再開させる
    System.Threading.AutoResetEvent,Thread

Task による非同期処理の作成/実行

  • 非同期処理を作成して開始する
    System.Threading.Tasks.Task
  • 非同期処理から値を返す
    System.Threading.Tasks.Task<TResult>
  • 非同期処理の依存関係を指定する
    System.Threading.Tasks.Task
  • 非同期処理が実行されるスレッドを限定する
    System.Threading.Tasks.TaskScheduler

非同期処理の制御

  • 非同期処理を行う
    System.Threading.Tasks.Task,TaskFactory
  • 非同期処理の状態を取得する
    System.Threading.Tasks.Task
  • 入れ子の非同期操作を解除する
    System.Threading.Tasks.Task<TResult>
  • 非同期処理完了後の継続処理を設定する
    System.Threading.Tasks.Task,ContinuationOptions
  • 指定時間後に完了するだけの処理を作成する
    System.Threading.Tasks.Task
  • 非同期処理の完了を待つ
    System.Threading.Tasks.Task
  • 複数の非同期処理すべての完了を待つ
    System.Threading.Tasks.Task
  • 複数の非同期処理いずれかの完了を待つ
    System.Threading.Tasks.Task
  • 制御を返し非同期に残りの処理を行う
    System.Threading.Tasks.Task
  • 非同期処理をキャンセルする
    System.Threading.CancellationTokenSource,CancellationToken
  • 非同期処理の進行状況を報告する
    System.IProgress<T>,System.Progress<T>
  • 非同期処理の例外を処理する
    System.AggregateException

並列処理

  • カウンターによるループを並列処理で実行する
    System.Threading.Tasks.Parallel
  • 列挙子によるループを並列処理で実行する
    System.Threading.Tasks.Parallel
  • PLINQ 式で処理を実行する
    System.Collections.Generic.IEnumerable<T>, System.Linq.ParallelEnumerable

データフロー

  • データフローで処理を実行する
    System.Threading.Tasks.Dataflow.TransformBlock<TInput,TOutput>

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

  • 概要

接続型データアクセス

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

トランザクション制御

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

EF Core

  • エンティティクラスを定義する
    Microsoft.EntityFrameworkCore.DbContext,DbSet<T>
  • コンテキストクラスを定義する
    Microsoft.EntityFrameworkCore.DbContext,DbSet<T>
  • データベースに変更を反映する
    Microsoft.EntityFrameworkCore.DbContext,DbSet<T>
  • EF CoreのAPIでデータベースを作成/削除する
    Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade
  • コンテキストでモデルをカスタマイズする
    Microsoft.EntityFrameworkCore.DbContext,ModelBuilder,EntityTypeBuilder<TEntity>
  • リレーションシップをFluentAPIで指定する
    Microsoft.EntityFrameworkCore.Metadata.Builders.EntityTypeBuilder<TEntity>,ReferenceNavigationBuilder<TEntity,TRelatedEntity>,CollectionNavigationBuilder<TEntity,TRelatedEntity>
  • 初期データを設定する
    Microsoft.EntityFrameworkCore.Metadata.Builders.EntityTypeBuilder<TEntity>
  • 一括読み込みで関連エンティティも読み込む
    System.Linq.IQueryable, Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions

LINQ to Entities

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

Column

  • C#の名前の由来
  • 暗黙的なglobal using
  • アプリケーション独自の例外クラス
  • オーバーフローの値
  • ソースジェネレーターとパーシャルメソッド
  • Microsoft Azureについて
  • Visual Studioのリファクタリング - 名前の変更
  • Visual Studioの機能 - IntelliSense
  • Visual Basicの現在
  • Visual Studioのリファクタリング - メソッドの抽出
  • .NETのその他のプログラミング言語 - F#
  • UnityとC#
  • Visual Studioのリファクタリング - フィールドのカプセル化
  • Visual Studioのリファクタリング - パラメーターの順序変更
  • C#インタラクティブ
  • Visual Studioの機能 -ソースコードの折りたたみ-
  • C#をmacOSやLinuxで?
  • C#によるスマートフォンアプリ開発
  • 複数スレッドで変数を共有する場合の注意
  • 完了通知のある非同期処理をTask<TResult>として提供する
  • 条件によって完了済みタスクを返す
  • 並列スタックウィンドウ
  • MARS(Multiple Active Result Sets)
  • ハッシュ関数の安全性
  • SQL ServerがどのようなSQLを受けとっているか
  • dotnet efツール
  • LINQ to Entityが変換/発行しているSQL

サポート

現在サポート情報はありません。

商品一覧