Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9517

フィールドとプロパティの違い

$
0
0

背景

入社して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:プロパティ
 で、割引した値段を取ることができる。


Viewing all articles
Browse latest Browse all 9517

Trending Articles