プログラミングC# 第7版 著者 : Ian Griffiths オライリージャパン 発売日 : 2013-11-29 ブクログでレビューを見る» 読んで、書いて、書いて、読んで。 書いて困って、読んでときどき役に立つ。 ManagementとCoding、読書とCoding。 どっちもバランスが重要な気がする。 (以下抜粋。○:完全抜粋、●:簡略抜粋) ○readonlyフィールドは初期化されると二度と変更できませんが、 これに対しconstフィールドは、定数として同じ値を定義するものです。 readonlyフィールドの方が、はるかに柔軟性があり、 どんな型であっても構いませんし値は実行時に計算されても構いません。(P.83) ○型パラメータとは、 コンパイル時に別の型で置き換えることを可能とするものでプレースホルダーと呼ばれています。 これにより1つの型を書くだけで、複数のバージョンの型を生成することが可能となります。 これをジェネリック型と言います。(P.115) ●baseArg引数がDerivedもしくはDerivedから派生した型のインスタンスを参照していないときには変換が失敗し、 InvalidCastExceptionをスローします。 (中略) as演算子を使用して、例外発生のリスクなしに型変換を試みることができます。(P.165) ●配列初期化(P.132) ArrayInitializationプログラム参照。 DeducingInitより、MoreSimpleInitのほうが安心してしまうところが、 型推論によるプログラミングに慣れていない証拠かと思う。 ○到達可能性がどのように決定されるかに関する重要な結論の一つは、 GCは循環参照にもきちんと対応できることです。(P.193) ○構造体に対して最初にDisposeを呼び出しているとみなされています。 これは、CallDisposeの個々の呼び出しが新しくボックスを生成するからです。 実際には、変数dvを受け渡しているのではなく、 それぞれの呼び出しの度に新しいボックスを受け渡しています。(P.221) ○デリゲート型をILDASMのようなリバースエンジニ