【C#】プロパティ(set/get)の使い方

C#

本記事では『プロパティ』のザックリとした解説をしていきます。

 

初めに伝えておくと、”メンバ変数へのクラス外部から直接アクセスができてしまうのは好ましくない”です。

その理由の1つが”外部からの不正な値を書き込まれるケースがあり、予期せぬエラーが生じる”ためです。

なので、本記事の後に『カプセル化』を読んでもらうことをお勧めします。

【C#】カプセル化の使い方【隠蔽化】
本記事ではオブジェクト指向で重要な概念である『カプセル化』の解説をします。 カプセル化とは ここではカプセル化について解説していきます。 カプセル化(概念)とは 開発ではオブジェクトを操作するプログラマーは、詳細な構造や仕組みを知ら...

スポンサーリンク



プロパティの使い方

プロパティのサンプル

本記事で使うプロパティを持ったクラスは下の通りです。※通常の書き方。

下のコードでは一人分の個人情報といったクラスを表現しています。

 

上のように変数に『set・get』が書かれている部分がプロパティになります。

これらのプロパティには修飾子が『public』が指定されています。

この修飾子publicで指定したプロパティは外部クラスから『インスタンス名.プロパティ名』を使って値の代入、取得ができるようになります。

 

宣言と初期化を別にする

まずは宣言と初期化を別々に行う書き方です。※プロパティへの代入は13~16行目です。

13~16行目:『名前・性別・年齢・出身地』のプロパティに値を代入している。

19~22行目:『インスタンス名.プロパティ名』で値を取得し、コマンドプロンプトに表示している。

 

実行結果

田中太郎

20

東京都

 

インスタンス化と初期化を同時に行う

上ではインスタンス化と初期化を別々に行いました。

次にそれらを同時に行う書き方を紹介します。※赤文字が同時に行う書き方です。

【インスタンス化と初期化が別々(上のコード:9~16行目)】

// Personクラスをインスタンス生成
var person = new Person();

// Personクラスのプロパティに値を代入
person.name = “田中太郎”;
person.sex = “男”;
person.age = 20;
person.birthplace = “東京都”;

 

【インスタンス化と初期化を同時に行う】

// Personクラスをインスタンス生成 + 初期化
var person = new Person
{
  name = “田中太郎”,
  sex = “男”,
  age = 20,
  birthplace = “東京都”,
};

インスタンス化と初期化を同時に行うときには『{ };』で囲みます。

そして、プロパティへの値の代入は”インスタンス名は書く必要はない”です。

 

【C#】カプセル化の使い方【隠蔽化】
本記事ではオブジェクト指向で重要な概念である『カプセル化』の解説をします。 カプセル化とは ここではカプセル化について解説していきます。 カプセル化(概念)とは 開発ではオブジェクトを操作するプログラマーは、詳細な構造や仕組みを知ら...

スポンサーリンク