2015/11/19

【C#】constとreadonly





あるプログラムを作ってたところ、「読み取り専用」って感じの仕様が欲しいなぁーって場面に。

ちょうど、C#にはreadonlyなる便利な修飾子があるではないか!




Q. constではダメなの?
A. 今回はそれではダメなんです。
クラス内のメンバで、変更不可(読み取り専用)の変数を作りたかった。
そして、その変数の値をコンストラクタで初期化したかったため



・const
  変数を定数として扱う。
  コンパイル時に値が決定されるため、宣言時の初期化以外は値の代入を受け付けられない。

・readonly
  宣言のときとクラスのコンストラクタ以外での値の代入を許可しない。
  ちょうど「読み取り専用」の変数のような感じ

readonly - MSDN





readonlyの存在は知ってたけど、使ったことはなかったし使い方も知らなかったので、また一つ勉強になりました。


Q. Setterのみを実装してprivateで変数自体は隠蔽すればよかったのでは?
A. 変数の量がやたら多かったのでSet書くのが面倒だったとか言えない





おわり




0 件のコメント:

コメントを投稿