#背景
入社して2年。なんちゃってSEになる気がしてきたので。。。
(まともにプログラム勉強する時間なんかねーよ)
C#をこれからまじめに勉強する。(つもり)
初めて2週間さっそく、フィールドとプロパティの違いがわからなくなり
ここに備忘録として記す。
#実行プログラム
本の値段を変数へ格納して、割引した値段を出力する。
class Program
{
static void Main(string[] args)
{
//オブジェクト
Book0 book0 = new Book0();
Book1 book1 = new Book1();
Book2 book2 = new Book2();
//価格
book0.price = 100;
book1.set(1000);
book2.price = 10000;
//値引き率
book0.rate = 0.8;
book1.rate = 0.8;
book2.rate = 0.8;
//表示
Console.WriteLine(book0.price * book0.rate);
Console.WriteLine(book1.get());
Console.WriteLine(book2.price);
Console.ReadKey();
}
}
//フィールドのみのクラス
class Book0
{
public double price;
public double rate;
}
//フィールドとメソッドを持つクラス
class Book1
{
private double _price;
public double rate;
public double get()
{
return _price * rate;
}
public void set(double value)
{
_price = value;
}
}
//プロパティのみを持つクラス
class Book2
{
public double rate { get; set; }
private double _price;
public double price
{
get
{
return _price * rate;
}
set
{
_price = value;
}
}
}
#違い
・プロパティを用いると、setとgetで別々の処理をすることができる。
つまり、値段を変えず(setせず)に、値を取得(get)することができる。
・クラスBook1で記述している通り、プロパティはgetメソッド・setメソッドの関数が入っているようなものである。
・クラスBook0:フィールド同士の掛け算、クラスBook1:getメソッド、クラスBook2:プロパティ
で、割引した値段を取ることができる。