一言で言うとC#は便利です。
私のイメージですがC++をさらに使いやすくした感じでしょうか?
そうですね、例えばC++で言うアクセサーですが、C#ではプロパティとして記述でき、クラス内部からはメソッドのような振る舞いに見え、クラス外部からはメンバ変数のように振る舞うように見えます。
//------------------------
// class
//------------------------
class Test
{
private int m_num; // メンバ変数
// プロパティ
public int Num
{
set{ this.m_num = value; }
get{ return this.m_num ; }
}
}
//---------------------------------------------------------------
みたいな感じで記述する事でC++でのアクセサーの記述と同様の意味を持ちます。
ちなみに使い方は・・・
//------------------------
// クラスの利用側
//------------------------
class PropertySample
{
public void sample( )
{
Test t = new Test();
t.Num = 5; // set を呼び出している。
Debug.WriteLine{ " Number is ", t.Num ; } // get 呼び出している。
}
}
//---------------------------------------------------------------
ですっ!
どうですか簡単ですよね?
さらにプロパティ部分を・・・・
//---------------------------------------------------------------
// プロパティ
public int Num { get; set; } // 自動プロパティと言います。
//--------------------------------------------------------------
と省略して書く事ができます。
C++ならメンバ変数の数だけ必要になるかも知れないアクセサーを楽に記述でき、オブジェクトの状態をメソッドを通して取得、変更が可能になり、クラスを使用する側にはメンバ変数をそのまま扱うように使用する事ができます。
これがC#のすごさですよ~
まぁこれはまだまだ序の口ですけどねw
あっ二年生でアクセサーを知らなかった人はちょうどいい機会ですので自分のコードの隠蔽性を再確認してみて下さい。
ところででアクセサ?アクセサー?どっちなん・・・・・・・
以上!!
この頃忙しいので今後も不定期にのんびり更新します。
一年生もプチデジ頑張ってね!
PR
COMMENT
無題
実際の発音とかはさほど変わらんのではなかろうか…。
個人的には「アクセッサ」(ぇ