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