日期:2014-05-17  浏览次数:20729 次

类里的字段调用
 
  class PeoPle
    {
        private  DateTime birthday1;//有static 就不会出错。
        private DateTime birthday2;
        int age =DateTime.Now.Year - birthday1.Year;// 红色字体会出错,为什么?(2)为什么给birthday1加上static就不会出错。
 
        public void GetAge()
        {
            age = DateTime.Now.Year - birthday2.Year;//为什么这里引用就不会出错?
        }
    }
------最佳解决方案--------------------
说的很清楚了呀,字段初始值无法引用非静态字段、方法、或属性。

第一种,你的 int age是类里的字段,在定义的时候对它赋初值,而 private  DateTime birthday1也是类的字段,于是,对age的赋初值不可以引用非静态字段birthday1,如果加上static,那么birthday1就是静态字段了,就可以在字段赋初值时引用。

第二种,你是在方法里写的,已经不是字段赋初值啦~~~可以随便用
------其他解决方案--------------------
类里只能用静态的方法字段  
后面的birthday 已经是在方法里了 可以直接用