今日読んだ本と感想。
C#言語は、Microsoft .NETプラットフォームでさまざまなアプリケーションを開発するのに適したオブジェクト指向言語です。また、C#で開発するためには、そのプラッ トフォームである.NET Frameworkは欠かせません。本書では、そのC#言語の要素をなす文法上の特徴や.NET Frameworkを用いたプログラミング、主な.NET Frameworkのクラスライブラリをコンパクトに解説しています。C#に興味のある方やこれからC#を使ってみたいという方に最適な1冊です。また、C#はどのような言語かを知りたい方も、本書を覗いてみるといいかもしれません。
目次
- 1章 C#について
- 1.1 C#言語
- 1.2 共通言語ランタイム
- 1.3 Frameworkクラスライブラリ
- 1.4 はじめてのC#プログラム
- 2章 C#言語リファレンス
- 2.1 識別子
- 2.2 型
- 2.2.1 型のインスタンス
- 2.2.2 例:型の作成と使用
- 2.2.3 暗黙的な変換と明示的な変換
- 2.2.4 型の種類
- 2.2.5 事前定義型
- 2.2.6 型とメモリ
- 2.2.7 統合型システム
- 2.3 変数
- 2.3.1 厳密な割り当て
- 2.3.2 既定値
- 2.4 式と演算子
- 2.4.1 演算子の優先順序
- 2.4.2 算術オーバーフローチェック演算子
- 2.5 ステートメント
- 2.5.1 式ステートメント
- 2.5.2 宣言ステートメント
- 2.5.3 空のステートメント
- 2.5.4 選択ステートメント
- 2.5.5 ループステートメント
- 2.5.6 ジャンプステートメント
- 2.6 型の編成
- 2.6.1 ファイル
- 2.6.2 名前空間
- 2.7 継承
- 2.7.1 クラスの変換
- 2.7.2 ポリモーフィズム
- 2.7.3 仮想関数メンバ
- 2.7.4 抽象クラスと抽象メンバ
- 2.7.5 シールドメソッドとシールドクラス
- 2.7.6 継承したメンバを隠す機能
- 2.7.7 仮想関数メンバのバージョンの管理
- 2.8 アクセス修飾子
- 2.8.1 アクセス修飾子の制限
- 2.9 クラスと構造体
- 2.9.1 クラスと構造体の違い
- 2.9.2 インスタンスメンバと静的メンバ
- 2.9.3 フィールド
- 2.9.4 定数
- 2.9.5 プロパティ
- 2.9.6 インデクサ
- 2.9.7 メソッド
- 2.9.8 演算子
- 2.9.9 インスタンスコンストラクタ
- 2.9.10 静的コンストラクタ
- 2.9.11 自己参照
- 2.9.12 デストラクタとFinalizeメソッド
- 2.9.13 ネストした型
- 2.10 インターフェイス
- 2.10.1 インターフェイスの定義
- 2.10.2 インターフェイスの実装
- 2.10.3 インターフェイスの使用
- 2.10.4 インターフェイスの拡張
- 2.10.5 明示的なインターフェイスの実装
- 2.10.6 インターフェイスの再実装
- 2.10.7 インターフェイスの変換
- 2.11 配列
- 2.11.1 多次元配列
- 2.11.2 ローカル/フィールド宣言
- 2.11.3 配列の長さとランク
- 2.11.4 境界チェック
- 2.11.5 配列の変換
- 2.12 列挙
- 2.12.1 列挙演算子
- 2.12.2 列挙の変換
- 2.13 デリゲート
- 2.13.1 マルチキャストデリゲート
- 2.13.2 デリゲートと関数ポインタの比較
- 2.13.3 デリゲートとインターフェイスの比較
- 2.14 イベント
- 2.14.1 イベント用のデリゲートの定義
- 2.14.2 EventArgsを使ったイベントのデータの保存
- 2.14.3 イベントの宣言および起動
- 2.14.4 イベントハンドラによるイベントへの対応
- 2.14.5 イベントアクセサ
- 2.15 tryステートメントと例外
- 2.15.1 tryステートメント
- 2.15.2 例外
- 2.15.3 catch
- 2.15.4 finally
- 2.15.5 System.Exceptionクラスの重要なプロパティ
- 2.16 属性
- 2.16.1 属性クラス
- 2.16.2 名前付きパラメータと位置パラメータ
- 2.16.3 属性ターゲットの明示的な指定
- 2.16.4 複数の属性の指定
- 2.17 アンセーフコードとポインタ
- 2.17.1 ポインタ型
- 2.17.2 アンセーフコード
- 2.17.3 fixedステートメント
- 2.17.4 ポインタからメンバへの演算子
- 2.17.5 stackallocキーワード
- 2.17.6 void*
- 2.17.7 アンマネージドコードへのポインタ
- 2.18 プリプロセッサディレクティブ
- 2.19 XML文書
- 2.19.1 C/C++スタイルのコメント
- 2.19.2 ドキュメンテーションコメント
- 2.19.3 XML文書ファイル
- 2.19.4 事前定義のXMLタグ
- 2.19.5 ユーザー定義タグ
- 2.19.6 型またはメンバの相互参照
- 3章 .NET Frameworkプログラミング
- 3.1 一般的な型
- 3.1.1 Objectクラス
- 3.1.2 ICloneableインターフェイス
- 3.1.3 IComparableインターフェイス
- 3.1.4 IFormattableインターフェイス
- 3.2 数学関連の機能
- 3.2.1 言語自体でサポートされている数学機能
- 3.2.2 特殊な型と演算子
- 3.2.3 Mathクラス
- 3.2.4 Randomクラス
- 3.3 文字列
- 3.3.1 Stringクラス
- 3.3.2 文字列の不変性
- 3.3.3 文字列のインターン
- 3.3.4 書式文字列
- 3.3.5 文字列のインデックス
- 3.3.6 エンコード文字列
- 3.3.7 StringBuilderクラス
- 3.4 コレクション
- 3.4.1 具象コレクションクラス
- 3.4.2 Collectionインターフェイス
- 3.5 正規表現
- 3.5.1 Regexクラス
- 3.5.2 MatchクラスとMatchCollectionクラス
- 3.5.3 Groupクラス
- 3.5.4 CaptureクラスとCaptureCollectionクラス
- 3.5.5 正規表現の使用
- 3.6 入出力
- 3.6.1 ストリームとバッキングストア
- 3.6.2 ディレクトリとファイル
- 3.7 ネットワーク
- 3.7.1 ネットワークプログラミングモデル
- 3.7.2 汎用の要求/応答アーキテクチャ
- 3.7.3 HTTP特有のサポート
- 3.7.4 新しいプロトコルハンドラの追加
- 3.7.5 TCP、UDPおよびソケットの使用
- 3.7.6 DNSの使用
- 3.8 スレッド
- 3.8.1 スレッドの同期
- 3.8.2 よく使うスレッド関連の型
- 3.8.3 Monitorクラス
- 3.9 アセンブリ
- 3.9.1 アセンブリの構成要素
- 3.9.2 パッケージ
- 3.9.3 配置
- 3.9.4 バージョン管理
- 3.9.5 型の解決
- 3.9.6 セキュリティアクセス許可
- 3.10 リフレクション
- 3.10.1 型階層
- 3.10.2 インスタンスの型の取得
- 3.10.3 直接取得する型
- 3.10.4 型階層のリフレクション
- 3.10.5 型への実行時バインディング
- 3.10.6 アクティベーション
- 3.10.7 リフレクションの高度な利用方法
- 3.10.8 実行時における新しい型の作成
- 3.11 カスタム属性
- 3.11.1 カスタム属性の言語サポート
- 3.11.2 カスタム属性のコンパイラサポート
- 3.11.3 カスタム属性の実行時サポート
- 3.11.4 事前定義の属性
- 3.11.5 新しいカスタム属性の定義
- 3.11.6 実行時におけるカスタム属性の取得
- 3.12 自動メモリ管理
- 3.12.1 ガベージコレクタ
- 3.12.2 最適化のテクニック
- 3.12.3 ファイナライザ
- 3.12.4 DisposeメソッドとCloseメソッド
- 3.13 ネイティブDLLとの相互運用
- 3.13.1 一般的な型のマーシャリング
- 3.13.2 クラスと構造体のマーシャリング
- 3.13.3 イン/アウトマーシャリング
- 3.13.4 アンマネージドコードからのコールバック
- 3.13.5 事前定義の相互運用サポート属性
- 3.14 COMとの相互運用
- 3.14.1 COMオブジェクトとC#オブジェクトのバインド
- 3.14.2 COMオブジェクトのC#への公開
- 3.14.3 C#オブジェクトのCOMへの公開
- 3.14.4 C#のCOMマッピング
- 3.14.5 よく使うCOM相互運用サポート属性
- 4章 Frameworkクラスライブラリの概要
- 4.1 中枢となる型
- 4.2 テキスト
- 4.3 コレクション
- 4.4 ストリームとI/O
- 4.5 ネットワーク
- 4.6 スレッド
- 4.7 セキュリティ
- 4.8 リフレクションとメタデータ
- 4.9 アセンブリ
- 4.10 シリアル化
- 4.11 リモート処理
- 4.12 Webサービス
- 4.13 データアクセス
- 4.14 XML
- 4.15 グラフィックス
- 4.16 豊富なクライアントアプリケーション
- 4.17 Webベースのアプリケーション
- 4.18 グローバリゼーション
- 4.19 構成
- 4.20 高度なコンポーネントサービス
- 4.21 診断とデバッグ
- 4.22 アンマネージドコードとの相互運用
- 4.23 コンパイラとツールのサポート
- 4.24 ランタイム機能
- 4.25 OSネイティブの機能
- 4.26 文書化されていない型
- 5章 基本的な.NETツール
- 付録A キーワード
- 付録B 正規表現
- 付録C 書式指定子
- C.1 カスタム数値書式指定子
- C.2 日時書式指定子
- 付録D データマーシャリング
- 付録E アセンブリの操作
- E.1 共有可能なアセンブリの作成
- E.1.1 モジュールのビルド
- E.1.2 アセンブリへのモジュールのリンク
- E.1.3 新しいアセンブリのビルド
- E.1.4 アセンブリの共有
- E.2 グローバルアセンブリキャッシュの管理
- E.3 nmakeの使用
- 付録F 名前空間とアセンブリ
プログラミング言語C#を学び始めたい、あるいはどんな感じの言語か知りたいとき、プログラミングC# 第6版では詳しく知る事はできても分厚すぎる、身構えてしまう、あるいは難しいと感じてやめてしまうかも。かといって初めてのC# 第2版だと簡単ではあるけどそれでもまだ分厚い、取り組むのが三日坊主になってしまうかも。けど、本書なら分量的にはさらっと読む、目を通すのにちょうどいい感じ。(話はC#とずれるけど、Pythonも好きでPythonチュートリアル 第2版を読んだとき、とてもコンパクトだけど内容は幅広くて凄く気に入ったのと同じような印象を受けた。)
ただ、分量的にちょうどよくても、入門と考えると内容的にはちょっと難しそう。(あと、C#は進化を続けていてバージョン4.0までになってるので、ちょっと古いかなあと感じる箇所も見つかるかも。)逆に、C++やJavaの知識があればすんなり読めるかも。(といってもJavaのなになにとか、C++のなになにとかいう例があったからそう思ったけで、JavaもC++もほとんど知らない><)
入門と考えると内容的には難しいかもしれないけど、それでも、分量が少なくコンパクトなのでさっと目を通す、あるいは軽く、大雑把に暗記してしまうという気持ちで読めば、今後C#を身につけていくのならとても役立つと思う。C#の基礎の目次が頭の中に出来上がる感じ。その後で、もっとC#を学びたいと感じたり、分からない事を知りたいと思ったら、次に進んで初めてのC# 第2版 やプログラミングC# 第6版、C#クックブック 第3版を読めば、理解もより速く進んだり、深くなりそう。
ということで、何事も基礎は大切な事で繰り返せば繰り返す程気づかないところで役立つと思うので、Pythonチュートリアルとともに、本書も今後は定期的に目を通して、覚えている事を再確認したり、忘れてた事を思い出すようにしようと思った今日この頃。
0 コメント:
コメントを投稿