.NET Visual C#言語入門 > フィールド
のぶ亭『プログラミングの相談窓口』 … 様々なプログラミング問題を個別対応致します |
フィールド
フィールドとは外部変数ことで、クラスまたは構造体に含まれるオブジェクトや値のことです。
フィールドは通常、private にしてください。フィールドは、publicも可能ですが、この方法を実際に使用することはお勧めしません。外部クラスによるフィールドへのアクセスは、メソッド、プロパティ、インデクサを使用した間接的なアクセスにする必要があります。
フィールド
フィールドは、クラスのデザインを実現する上で必要なデータを格納します。たとえば、暦の日付を表すクラスには、月、日、年を表す 3 つの整数フィールドが存在します。フィールドは、フィールドのアクセス レベル、フィールドの型、フィールドの名前を順に指定して、クラス ブロック内で宣言します。次に例を示します。
public class CalendarDate { public int month; public int day; public int year; }
オブジェクト内のフィールドにアクセスするには、objectname.fieldname のように、オブジェクト名の後にピリオドを追加し、その後にフィールド名を続けます。次に例を示します。
CalendarDate birthday = new CalendarDate();
birthday.month = 7;
フィールドには、フィールドの宣言時に代入演算子を使用して初期値を設定できます。たとえば、month フィールドに自動的に 7 を代入するには、次のように month を宣言します。
public class CalendarDateWithInitialization { public int month = 7; //... }
フィールドは、オブジェクト インスタンスのコンストラクタが呼び出される直前に初期化されるので、コンストラクタがフィールドの値を代入すると、フィールドの宣言中に指定された値はすべて上書きされます。
メモ |
---|
フィールド初期化子は、他のインスタンス フィールドを参照できません。 |
フィールドは、 public、private、protected、internal、または protected internal とマークできます。これらのアクセス修飾子により、クラスのユーザーがフィールドにどのようにアクセスできるかが定義されます。
フィールドは、static と宣言することもできます。このように宣言すると、クラスのインスタンスが存在しない場合でも、呼び出し元がいつでもフィールドにアクセスできます。
フィールドは、readonly として宣言できます。読み取り専用フィールドには、初期化時またはコンストラクタでしか値を代入できません。static readonly フィールドは基本的に定数と同じですが、C# コンパイラは、このフィールドの値にはコンパイル時にアクセスできず、実行時にしかアクセスできません。