属性是对实例特征的抽象,它提供了对类或者对象性质的访问机制,属性是C#独有的功能,体现了封装性:不能直接操作类的数据内容,通过访问器来访问
属性的声明是和类中定义的私有字段配合使用的
get set访问器
属性修饰符有static virtual override abstract
===========一个栗子==================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ch05Ex06
{
class Program
{
class Person
{
private static int number = 0;//私有静态字段,表示人的编号
private string name;//私有实例字段,表示人的姓名
private int age;
public Person()
{
number = number + 1;
}
public string Name//可读写实例属性Name 用于设置name
{
get { return name; }
set { name = value; }
}
public int Age//可读写实例属性Age 用于设置age
{
get { return age; }
set { age = value; }
}
public static int Number//只读静态属性,只包含get访问器
{
get { return number; }
}
}
static void Main(string[] args)
{
Person personA = new Person();
personA.Name = "Jack";
personA.Age = 20;
Console.WriteLine("PersonA.number:{0}\tpersonA.Name:{1}\tpersonA.Age:{2}", Person.Number, personA.Name, personA.Age);
}
}
}
属性是对私有字段的读取和写入,以便完成公有字段无法完成的任务。属性是为了满足对共有字段的特殊需求而产生的复数品,所有使用属性还是字段要看需求