字段和属性关系
字段就像名词 属性好比形容词 用来形容名词长什么样子
字段和属性描述的对象不同.
表: 建立表后,设置字段.
表单: 建立表单后,设置属性。
属性其實是方法,一般來說,字段是不設成public的,對於用戶是隱藏的,所有字段都是通過屬性對外開放的
private System.Int32 _id;
public System.Int32 id
{
get { return _id; }
set { _id = value; }
}
private System.String _uid;
public System.String uid
{
get { return _uid; }
set { _uid = value; }
}
private System.String _reason;
public System.String reason
{
get { return _reason; }
set { _reason = value; }
}
_id就是字段,id就是属性 私有字段体现类的封装性。。为了保护类里面的成员不被任意改动。
set()和get()属性实现了数据的封装和保证了数据的安全性!
封装使程序可靠且易于维护!
using System;
class Account
{
private double balance = 0; //字段
public double Balance //属性
{
get { return balance; }
set { balance = value;}
}
/*=============================================================
* 我们可以通过修改get、set方法达到控制存取的目的。
* 例如:
*
* 1)只读属性
* public double Balance //属性
* {
* get { return balance; }
* set { }
* }
*
* 2)读写控制
* public double Balance
* {
* get
* {
* if(Console.ReadLine()=="1234")
* return balance;
* else
* return -9999999;
* }
* set { }
* }
* =============================================================
*/
public void Deposit(double n)
{ this.balance += n; }
public void WithDraw(double n)
{ this.balance -= n; }
}
class Client
{
public static void Main()
{
Account a = new Account();
a.Balance = 1000; // 可以读写属性,因为属性Balance是public型的
//a.balance = 1000; //不可以读写字段,因为字段balance是private型的
a.WithDraw(500);
a.Deposit(2000);
Console.WriteLine(a.Balance);
}
}