Effective C# 6.0/7.0

個数:
電子版価格 ¥3,520
  • 電書あり

Effective C# 6.0/7.0

  • ウェブストアに1冊在庫がございます。(2020年02月25日 15時12分現在)
  • 出荷予定日とご注意事項
    ※上記を必ずご確認ください

    【出荷予定日】
    ■ご注文当日 (午前0時~午前10時30分までのご注文)
     または
    ■ご注文翌日 (午前10時31分~午後11時59分までのご注文)

    【ご注意事項】 ※必ずお読みください
    ◆在庫数は刻々と変動しており、ご注文手続き中に減ることもございます。
    ◆在庫数以上の数量をご注文の場合には、超過した分はお取り寄せとなり日数がかかります。入手できないこともございます。
    ◆事情により出荷が遅れる場合がございます。
    ◆お届け日のご指定は承っておりません。
    ◆「帯」はお付けできない場合がございます。
    ◆特に表記のない限り特典はありません。
  • ●店舗受取サービス(送料無料)をご利用いただけます。
    【カートに入れる】を選択後に全国店舗の中からお受け取り店をご指定下さい。尚、受取店舗限定の特典はお付けできません。詳細はこちら
  • サイズ B5変判/ページ数 231p/高さ 23cm
  • 商品コード 9784798153865
  • NDC分類 007.64
  • Cコード C3055

内容説明

ジェネリスクとLINQを中心に、洗練されたプログラムにする50の方法。

目次

第1章 C#言語イディオム(ローカル変数の型をなるべく暗黙的に指定すること;constよりもreadonlyを使用すること ほか)
第2章 リソース管理(.NETのリソース管理を理解する;メンバには割り当て演算子よりもオブジェクト初期化子を使用すること ほか)
第3章 ジェネリックによる処理(最低限必須となる制約を常に定義すること;実行時の型チェックを使用してジェネリックアルゴリズムを特化する ほか)
第4章 LINQを扱う処理(コレクションを返すメソッドではなくイテレータを返すメソッドとすること;ループよりもクエリ構文を使用すること ほか)
第5章 例外処理(契約違反を例外として報告すること;usingおよびtry…finallyを使用してリソースの後処理を行う ほか)

著者等紹介

ワグナー,ビル[ワグナー,ビル] [Wagner,Bill]
世界的にも重要なC#開発者の1人で、ECMA C#標準委員会(ECMA C# Standards Committee)のメンバーである。Humanitarian Toolbox社の社長で、Microsoft Regional Directorならびに.NET MVPを11年間受賞しており、近年では.NET財団(.NET Foundation)の諮問委員も務めた。スタートアップ会社から大企業にいたるまで、ソフトウェア開発チームの開発プロセス改善に携わっていた。現在、.NET Core関連のチームメンバーとしてMicrosoft社に勤務している。また、C#言語や.NET Coreに興味を持つ人々向けに教育教材を作成している(本データはこの書籍が刊行された当時に掲載されていたものです)
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。

出版社内容情報

ジェネリクスとLINQを中心に、洗練されたプログラムにする50の方法ジェネリスクとLINQを中心に、
C#プログラムを高速で洗練されたものにする50の方法。



スコット・メイヤー監修によるEffectiveシリーズ待望のC#第3版。



C#を使った開発時に、躓きがちな問題点、

・高速化

・効率化

・可読性の向上

・メンテナンス性の向上

・最新機能を盛り込みつつ、後方互換も取らなければならない

・API設計指針

などの解決策を、豊富な実例とともに詳解しています。




単なるサンプルコードの提示だけに留まらず、
「どう違うのか」「なぜそうするのか」「これによって何が得られるのか」を実例による検証とともに解説しています。





[著者について]

Bill Wagnerは、もっとも重要なC#開発者の1人であり、ECMA C# Standards Committeeのメンバーである。

彼はHumanitarian ToolboxのPresidentであり、Microsoft Regional Directorの役職を持ち、

.NET MVPを11年受賞し、最近では.NET Foundation Advisory Councilに任命されている。

Billは新事業から大企業まで数多くの会社で働き、ソフトウェア開発のプロセスを改善し、

それらのソフトウェア開発チームを成長させてきた。現在はMicrosoftの.NETのCore contentチームに勤め、

C#言語と.NET Coreに関心のある開発者のために学習用のマテリアルを作っている。

Billはイリノイ大学アーバナ・シャンペーン校でコンピュータサイエンスの学士号を授かっている。




第1章 C#言語イディオム

  項目 1 ローカル変数の型をなるべく暗黙的に指定すること

  項目 2 constよりもreadonlyを使用すること

  項目 3 キャストにはisまたはasを使用すること

  項目 4 string.Format() を補間文字列に置き換える

  項目 5 カルチャー固有の文字列よりもFormattableStringを使用すること

  項目 6 文字列指定のAPIを使用しないこと

  項目 7 デリゲートを使用してコールバックを表現する

  項目 8 イベントの呼び出し時にnull条件演算子を使用すること

  項目 9 ボックス化およびボックス化解除を最小限に抑える

  項目10 親クラスの変更に応じる場合のみnew修飾子を使用すること



第2章 リソース管理

  項目11 .NETのリソース管理を理解する

  項目12 メンバには割り当て演算子よりもオブジェクト初期化子を使用すること

  項目13 staticメンバを適切に初期化すること

  項目14 初期化ロジックの重複を最小化する

  項目15 不必要なオブジェクトの生成を避けること

  項目16 コンストラクタ内では仮想メソッドを呼ばないこと

  項目17 標準的なDisposeパターンを実装する



第3章 ジェネリックによる処理

  項目18 最低限必須となる制約を常に定義すること

  項目19 実行時の型チェックを使用してジェネリックアルゴリズムを特化する

  項目20 IComparableとIComparerにより順序関係を実装する

  項目21 破棄可能な型引数をサポートするようにジェネリック型を作成すること

  項目22 ジェネリックの共変性と反変性をサポートする

  項目23 型パラメータにおけるメソッドの制約をデリゲートとして定義する

  項目24 親クラスやインターフェイス用に特化したジェネリックメソッドを作成しないこと

  項目25 型引数がインスタンスのフィールドではない場合にはジェネリックメソッドとして定義すること

  項目26 ジェネリックインターフェイスとともに古いインターフェイスを実装すること

  項目27 最小限に制限されたインターフェイスを拡張メソッドにより機能拡張する

  項目28 構築された型に対する拡張メソッドを検討すること



第4章 LINQを扱う処理

  項目29 コレクションを返すメソッドではなくイテレータを返すメソッドとすること

  項目30 ループよりもクエリ構文を使用すること

  項目31 シーケンス用の組み合わせ可能なAPIを作成する

  項目32 反復処理をAction, Predicate, Funcと分離する

  項目33 要求に応じてシーケンスの要素を生成する

  項目34 関数引数を使用して役割を分離する

  項目35 拡張メソッドをオーバーロードしないこと

  項目36 クエリ式とメソッド呼び出しの対応を把握する

  項目37 クエリを即時評価ではなく遅延評価すること

  項目38 メソッドよりもラムダ式を使用すること

  項目39 FuncやAction内では例外をスローしないこと

  項目40 即時実行と遅延実行を区別すること

  項目41 コストのかかるリソースを維持しつづけないこと

  項目42 IEnumerableとIQueryableを区別すること

  項目43 クエリに期待する意味をSingle()やFirst()を使用して表現すること

  項目44 束縛した変数を変更しないこと



第5章 例外処理

  項目45 契約違反を例外として報告すること

  項目46 usingおよびtry...finallyを使用してリソースの後処理を行う

  項目47 アプリケーション固有の例外クラスを作成する

  項目48 例外を強く保証すること

  項目49 catchからの再スローよりも例外フィルタを使用すること

  項目50 例外フィルタの副作用を活用する



Bill Wagner[ビル ワグナー]
著・文・その他

鈴木 幸敏[スズキ ユキトシ]
監修

鈴木 幸敏[スズキ ユキトシ]
翻訳