有用性が特に高く、生産性の向上や高品質なコードを担保するようなC#の機能について、遭遇する問題とその解決策を提示するレシピ集です。C#の開発者が知っておくと役に立つ情報を厳選。言語仕様や基本など入門の内容は割愛し、脱初心者を目指す開発者、中級以上の開発者向けに、生産性を高め、コードの品質を高めることができるレシピを多数紹介しています。前半は実際にコーディングする手順に沿って、型の組み立て、アプリケーションの構築、アルゴリズムの実装、品質の向上・維持に関するテクニックを、後半ではLINQ、リフレクション、非同期プログラミングといったC#を特徴付ける機能と、データ分析、パターンマッチといった近年ますます重要視されているテーマを取り上げます。
C#クックブック
―プロフェッショナル開発者のためのモダンレシピ
Joe Mayo 著、鈴木 幸敏 訳
- TOPICS
- クックブック , C#
- 発行年月日
- 2023年02月
- PRINT LENGTH
- 352
- ISBN
- 978-4-8144-0018-8
- 原書
- C# Cookbook
- FORMAT
- Print PDF EPUB
目次
まえがき 1章 型とアプリケーションの構築 アーキテクチャの構築 パターンの適用 オブジェクトの生存期間の管理 レシピ1.1 オブジェクトの終了期間の管理 レシピ1.2 明示的な依存の削除 レシピ1.3 オブジェクト生成をクラスに任せる レシピ1.4 オブジェクト生成をメソッドに任せる レシピ1.5 アプリケーション層の設計 レシピ1.6 メソッドから複数の値を返す レシピ1.7 レガシーなクラスを強く型付けされたクラスに切り替える レシピ1.8 クラスを独自のインターフェイスに対応させる レシピ1.9 独自の例外を設計する レシピ1.10 複雑な設定でオブジェクトを構成する 2章 アルゴリズムのコーディング 性能 メンテナンス性 マインドセット レシピ2.1 文字列の効率的な処理 レシピ2.2 インスタンスのクリーンアップを単純化する レシピ2.3 ロジックをローカルに閉じておく レシピ2.4 複数のクラスを同じように呼び出す レシピ2.5 型の等価性をチェックする レシピ2.6 階層的データを処理する レシピ2.7 Unix時間との相互変換 レシピ2.8 頻繁にリクエストされるデータをキャッシュする レシピ2.9 型のインスタンス化を遅延させる レシピ2.10 データフィールドを解析する 3章 品質の維持 レシピ3.1 ユニットテストの作成 レシピ3.2 インターフェイスを安全にバージョン管理する レシピ 3.3 引数の検証を単純化する レシピ3.4 NullReferenceExceptionからコードを保護する レシピ3.5 決め打ちの文字列を使用しない レシピ3.6 クラスの文字列表現をカスタマイズする レシピ3.7 例外の再スロー レシピ3.8 処理の状態を管理する レシピ3.9 信頼性の高いネットワーク通信を構築する レシピ3.10 パフォーマンスの計測 4章 LINQによるデータ取得 レシピ4.1 オブジェクトの形状を変化させる レシピ4.2 データの結合 レシピ4.3 外部結合を行う レシピ4.4 データのグループ化 レシピ4.5 クエリを段階的に構築する レシピ4.6 オブジェクトを重複なく取得する レシピ4.7 クエリの単純化 レシピ4.8 集合に対する処理 レシピ4.9 式ツリーを利用してクエリのフィルターを組み立てる レシピ4.10 並列にクエリを実行する 5章 動的オブジェクトとリフレクションによる実装 レシピ5.1 リフレクションを使用した属性の読み取り レシピ5.2 リフレクションを使用して型のメンバーにアクセスする レシピ5.3 リフレクションによって型のメンバーのインスタンスを生成する レシピ5.4 リフレクションによるメソッド呼び出し レシピ5.5 リフレクションを動的オブジェクトで書き換える レシピ5.6 Officeアプリと相互運用を行う レシピ5.7 本質的に動的な型を作成する レシピ5.8 型のメンバーを動的に追加する レシピ5.9 PythonコードをC#から呼び出す レシピ5.10 C#コードをPythonから呼び出す 6章 非同期プログラミング レシピ6.1 非同期のコンソールアプリケーションを作成する レシピ6.2 非同期的に返される値が使用するメモリ使用量を削減する レシピ6.3 非同期反復子を作成する レシピ6.4 安全な非同期ライブラリを作成する レシピ6.5 進捗状況を非同期に更新する レシピ6.6 非同期コード中から同期コードを呼び出す レシピ6.7 並列タスクの完了を待機する レシピ6.8 並列タスクをそれぞれの完了に応じて処理する レシピ6.9 非同期の操作をキャンセルする レシピ6.10 非同期リソースの破棄 7章 データ処理 レシピ7.1 パスワードからのハッシュ生成 レシピ7.2 機密情報を暗号化または復号化する レシピ7.3 開発用の機密情報を隠蔽する レシピ7.4 JSONを生成する レシピ7.5 JSONデータを使用する レシピ7.6 JSONデータの処理 レシピ7.7 XMLデータの処理 レシピ7.8 XMLデータの生成 レシピ7.9 URL引数のエンコード/デコード レシピ7.10 DateTimeを柔軟に読み取る 8章 パターンマッチ レシピ8.1 インスタンスを安全に変換する レシピ8.2 フィルターされた例外をキャッチする レシピ8.3 switch式での割り当てを単純化する レシピ8.4 プロパティの値による判定 レシピ8.5 タプルによる判定 レシピ8.6 位置による判定 レシピ8.7 値の幅指定による判定 レシピ8.8 複雑な条件による判定 レシピ8.9 論理演算を使用する レシピ8.10 型による判定 9章 近年におけるC#の動向 レシピ9.1 アプリケーションの起動の単純化 レシピ9.2 インスタンス化用コードの省略 レシピ9.3 不変な状態の初期化 レシピ9.4 不変の型の作成 レシピ9.5 不変な型の値を単純に設定する レシピ9.6 再利用可能なレコードの設計 レシピ9.7 メソッドのオーバーライド時に異なる型を返す レシピ9.8 反復子を拡張メソッドとして実装する レシピ9.9 配列のスライシング レシピ9.10 モジュール全体の初期化 まとめ 索引