サンプルソースのクラスのメンバーN1,N2.N3はいずれも値を持っていますが代入できません。 しかし、機能に細かい違いがあります。 N1はconstを利用した例です。constを使って値を定義すると絶対に変更できません。ですから、常にstatic扱いで型名を経由して使います。 N2はreadonlyを利用した例です。例外的にコンストラクタでのみ書き換えられます。オブジェクト作成時に値が確定する使い方ができます。 N3はgetのみのプロパティを使用した例です。この場合、値は値を取得する時点で確定します。N3への代入はできませんが、N3の値は可変にできます。 罠の数々 §C#9からは、【初期化の場合のみ書き込みができるプロパティ】も定義可能になる。これはnew C(){N3=xxx}のような書式で値を設定でき、かつそのあとは代入できないプロパティを宣言可能とするconstを使った方法はいくら利