3.3 メンバ

 クラスまたは構造体のいずれを定義する場合でも、独自に定義した型の中にいくつかの異なる種類のメンバを入れることができます。これについての例は既に見てきましたが、さらに詳しく包括的に見ていくことにします。

 1つの例外(静的コンストラクタ)を除いて、すべてのクラスのメンバおよびすべての構造体のメンバにアクセシビリティを規定できます。型はpublicまたはinternalにできますが、各メンバについても同様です。メンバはprivateで宣言することもでき、型の内側のコードのみからアクセス可能となります。privateがデフォルトのアクセシビリティです。後ほど「6章 継承」で説明しますが、継承によりメンバにさらに3つのアクセシビリティレベル(protected, protected internal, protected private)が追加されます。

3.3.1 フィールド

 既に説明したように、フィールドは名前付きの記憶領域であり、その型に応じて値または参照を保持することができます。デフォルトでは、型の各インスタンスは、その型自身のフィールドセットを持ちます。しかし、フィールドをインスタンスごとにそれぞれ持たずに単一のものとしたい場合、キーワードstaticを使うことができます。また、キーワードreadonlyをフィールドに適用することでもできます。readonlyは、フィールドの構築時のみに値を設定でき、それ以降値を変更できないことを意味します。

警告や注意事項
キーワード

Get プログラミングC# 第8版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.