アクセサーの制御(C#)

  • このエントリーをはてなブックマークに追加

スポンサーリンク

※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~

アクセサーの省略

プロパティは、getアクセサーとsetアクセサーの2つのアクセサーから通常は構成されます。

しかし、getアクセサーとsetアクセサーの両方を必ず用意しないというわけではありません。片方だけでも問題ありません。

getアクセサーのみであれば、読み取り専用プロパティとして振舞います。

setアクセサーのみであれば、書き込み専用プロパティとして振舞います。

ソースコード

実行結果

10
40

mc.Resultに対して、mc.Numのように値を代入しようとするとエラーになります。

逆に、mc.Numに対して、mc.Resultのように値を読み出そうとするとエラーになります。

アクセシビリティの設定

getアクセサーとsetアクセサーに対して、それぞれ異なるアクセシビリティを設定することが可能です。

設定する際は以下の2点に注意してください(考えれば当たり前のことですが…)

・プロパティ自体のアクセシビリティより緩いアクセシビリティをアクセサーに指定できません

・getアクセサーとsetアクセサーの両方に対してアクセス修飾子を書くことはできません
(もしも、両方に対してアクセス修飾子を書くことができたら、プロパティ自体のアクセス修飾子の存在意味がなくなってしまいます。片方のアクセサーにアクセス修飾子を付けたなら、もう片方のアクセサーは、自動的にプロパティ自体のアクセス修飾子が適用されます)

ソースコード

※setアクセサーに対して、アクセス修飾子privateを付けています。

実行結果

10
70

クラスのインスタンス化の際に、_numの値を設定します。

そして、一度インスタンス化したら、それ以降は_numの値の変更を許さないソースコードとなっています。

※コンストラクターはクラスをインスタンス化した際に、最初に処理されるメソッドのようなもの。

~Webサイトを自分で作ってみませんか?~

Webサイトを運営するにはサーバーが必須です。
このサイトは、エックスサーバー のサーバーを使用しています。
エックスサーバーは無料で10日間お試しができます。

     

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)