フィールドとは?
フィールドとは、クラス等で宣言される任意の型の変数の事を言います。
通常はprivateかprotectedで宣言しますが、基本的にはprivateで宣言することで、他のクラスからはアクセスできないようにすることでカプセル化という状態と作りだします。
カプセル化とは?
カプセル化とは、クラスをデータと処理のひと固まりとしたときに、データの部分を公開せず、自分のクラスでのみ、編集を可能とすることで、クラスの見通しの良さや、保守性を高めるための技術です。
フィールドの書き方
フィールドの書き方は、private等のアクセス修飾子、intなどのデータ型、任意のフィールド名、イコールでつないで任意の初期値を記述し、最後にセミコロンを記述します。
書く場所はクラスの定義とコンストラクタの間、クラスの中では一番上に記述します。
アクセス修飾子は必要なアクセスレベルで記述します。基本的にフィールドはカプセル化をする必要があるため、通常はprivateとします。継承先で使用する場合はprotectedとします。publicやinternalはカプセル化の原則に反するためよほどの理由がない限りは使用しません。
データ型は任意の型を指定します。型推論であるvarは使用できません。
フィールド名は任意の名前を付けてOKですが、頭文字は小文字にします。Countと記述するのではなく、countと記述します。また、必ずしも守る必要はありませんが、慣例として「_」アンダーバーを付けることがよくあります。これはメソッドないで宣言された変数と、クラスのフィールドとして宣言された変数とを識別するためです。しかしこれはマイクロソフトのチームでもつけているチームとそうでないチームがあり、絶対的な命名規約ではないようですので、チーム内で統一されていればどちらでも問題ありません。私は上記理由によりアンダーバーを付ける命名を好んで使っています。
初期値は任意です。不要な場合は省略できます。省略した場合は数値であれば0、null
を許容するものであればnullになるものがほとんどです。初期値を指定しない場合は可読性が落ち、勘違いなどにより不具合が生じる可能性があるので、できるだけ初期値は記述しましょう。
サンプルコード
namespace CS20 { public class Class1 { private int _count = 0; //private var _count2 = 1; public Class1() { } public void Call() { _count++; //var _count3 = 1; } } }