日期:2014-05-17 浏览次数:21086 次
都知道一个对象必须先实例化才能用,而在实例化的时候就默认调用了系统的构造函数。现在我自己写构造函数,如
//上面的省略
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();
        }
    }