C#中有關屬性的演示

iamzxf發表於2015-03-17

C#中有關屬性的演示,解決好封裝性以及外部訪問之間的矛盾。

其實我自己以前對屬性和欄位一直很迷惘,既然有了欄位,為什麼還要引入屬性?把屬性設定為public,用來對欄位進行操作,這和直接把欄位設定為public屬性有何區別?這些問題一直困擾著我。

後來回想起了一個專案,當時是資料庫表是設定的是人的出生年月,後來要求輸出人的年齡,想起了屬性的用處。可以通過增加一個屬性,對出生年月進行邏輯上的修改,使其達到一個完美:既不用在資料表裡增加欄位,又可以滿足使用者的需求。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace attributeDemo
{
    class Employee
    {
        private string name;
        private int age;
        private double salary = 3000;

        public string Name
        {
            get { return name;}
            set { name=value; }
        }
        public int Age
        {
            get { return age;}
            set { age = Math.Abs(value); }
        }
        public double Salary
        {
            get { return salary; }
        }

    }
    class Program
    {        
        static void Main(string[] args)
        {
            Employee emp = new Employee();
            emp.Name = "李肯";
            emp.Age = 34;

            Console.WriteLine("name:{0}, age:{1}, salary:{2}",emp.Name,emp.Age,emp.Salary);

            Console.ReadLine();
        }
    }
}




相關文章