public class Person
{
private string P_name="张三";
private int P_age=12;
public void Display()
{
Console.WriteLine("姓名:{0},年龄:{1}",P_name,P_age);
}
public string Name
{
get
{
return P_name;
}
set
{
P_name=value;
}
public int Age
{
get
{
return P_age;
}
set
{
P_age=value;
}
}
}
我想问,既然,可以通过属性获得私有变量P_name的值,为什么不直接设置成public呢,属性岂不是多余吗?
{
private string P_name="张三";
private int P_age=12;
public void Display()
{
Console.WriteLine("姓名:{0},年龄:{1}",P_name,P_age);
}
public string Name
{
get
{
return P_name;
}
set
{
P_name=value;
}
public int Age
{
get
{
return P_age;
}
set
{
P_age=value;
}
}
}
我想问,既然,可以通过属性获得私有变量P_name的值,为什么不直接设置成public呢,属性岂不是多余吗?
如果你不用属性,而是把字段设置为public,那就只能是在客户端设置的时候进行提示,也就意味着你每次赋值都要做一次判断,但如果封装成属性,则可以直接在属性里进行提示:public int Age
{
get
{
return P_age;
}
set
{
if(value < 0)
{
Console.WriteLine("年龄不能为负数");
}
else
{
P_age=value;
}
}