ページ

2010年3月2日火曜日

C#勉強中 改訂版 C#入門 8-16

改訂版 C#入門の続き
  • 第8章 式と演算子
    まあ、このあたりは基本事項。
  • 第9章 ステートメント
    これも基本事項で他の言語と同様。
  • 第10章 名前空間とusing
    名前空間を持つ言語でなら同様。別名機能は他では見ない点かも。単純化されている分、Javaのパッケージより使い勝手がよさそう。
  • 第11章 コンストラクタとデストラクタ
    usingステートメントに注目(名前空間の方はusingディレクティブ)。アンマネージリソースを管理するようなオブジェクトの場合には明示的な廃棄処理が必要になります。しかしC#では(Javaでも)オブジェクトのデストラクタの実行タイミングは制御できません。で、そのようなオブジェクトにはIDisposableインターフェイスを実装し、usingステートメントで廃棄処理を明示的に呼び出すようにするようです。
  • 第12章 インデクサとプロパティ
    いってしまえば両方ともシンタックスシュガーに過ぎないのですが、うまく使えばソースの可読性を向上させます。特にインデクサは便利な機能です。
  • 第13章 処理を委譲するデリゲート
    段々とC#に特徴的な機能に入ってきました。ちなみに、delegateをカタカナ表記する場合にデリゲート、デレゲートの両方が使われることがあります。改定版では無い方のC#入門ではデレゲート表記になっていたりしてます。
    デリゲートは、C#(および一部のオブジェクト指向言語に)特徴的な機能で、特定の関数エントリに対して実際の処理関数を動的に切り替えることを可能にするものです。関数ポインタ云々といった記述がありますが、確かにデリゲートの方が本質的な機能であって、デリゲート機能を持たない言語ではこのような機能を(しょうがなく)関数ポインタで実装しているといえるでしょう。XサーバのGCによる描画関数の切り替え(描画対象とラスタオペレーションによって描画関数を切り替える)なんかはデリゲートがあればもっとすっきりした形で実装できたのではないかと思います。
  • 第14章 インターフェイスの活用
    まあ、Javaと同じといっていいでしょう。
  • 第15章 C#の配列機能
    このあたりも標準的。List 15-4 のコードと実行結果との対応が解り難かったけど、よくよく見ると文字列の長さになっているのですね。生成直後での例外発生を確認するためとはいえ、少々悩みました。
  • 第16章 列挙型の活用
    ここも全くもって標準的。
ということで今日はここまで。

0 件のコメント:

コメントを投稿