using System;
namespace Get_Set
{
//get方法和set方法的引入是为保护类中的字段,get方法和set方法在属性中,一个属性对应一个字段,
class Person
{
//字段
private string _name;
private int _age;
//属性Name对应 字段name,同时包含get 方法和set 方法。
//当然我们可以不写重写set方法,这样属性Name就是只读的。但我们一般使用private,等加以限定set方法,下文再讲
public string Name
{
get
{
Console.WriteLine("当读取name时访问了 Name属性 的get方法");
return _name;
// Console.WriteLine("当读取name时访问了 Name属性"); 放在这里将不会被执行
}
set
{
Console.WriteLine("当写入name时访问了 Name属性的set 方法");
_name = value;
}
}
//属性Age 对应字段age
public int Age
{
set
{
if (value < 0 || value > 120)
{
// Console.WriteLine("输入不合法");
throw (new AggregateException("输入不合法"));
}
Console.WriteLine("当写入age时访问了 Age属性的set 方法");
_age = value;
}
get
{
Console.WriteLine("当读取age时访问了 Age属性 的get方法");
return _age;
}
}
};
class Program
{
static void Main(string[] args)
{
// Console.WriteLine(new Person());
Person person = new Person();
// person.Age = 122;//执行这句将抛出异常
person.Age=119;
person.Name = "xiaobai";
Console.WriteLine("-------------");
Console.WriteLine(person.Age);
Console.WriteLine(person.Name);
}
}
}
输出结果
当写入age时访问了 Age属性的set 方法
当写入name时访问了 Name属性的set 方法
-------------
当读取age时访问了 Age属性 的get方法
119
当读取name时访问了 Name属性 的get方法
xiaobai