日期:2014-05-17 浏览次数:21076 次
都知道一个对象必须先实例化才能用,而在实例化的时候就默认调用了系统的构造函数。现在我自己写构造函数,如
//上面的省略
class Person
{
private int age; //定义一个私有age
public int Age //限制age的取值,属性
{
get {return age;}
set
{
if (value > 0 && value < 100)
age = value;
else
age = 0;
}
}
///构造方法
public Person(int MyAge)
{
this.age = MyAge; //实例化的时候赋初值
}
public void Say()
{
Console.WriteLine("我的年龄是:{0}。", age);
}
}
class Program
{
static void Main(string[] args)
{
//构造函数不会访问属性?
Person zs = new Person(-10); //调用自定义的构造方法,并赋初值-10
zs.Say(); //然后调用say(),输出的年龄是-10。
//问题来了,为什么赋初值的时候,并不去执行属性中的set?
Console.ReadKey();
}
}