黑马程序员技术交流社区

标题: c#面向对象编程—属性 [打印本页]

作者: 小天    时间: 2013-7-31 22:30
标题: c#面向对象编程—属性
本帖最后由 小天 于 2013-7-31 22:33 编辑

我总结了属性的几种情况
第1种情况:声明一个属性
  class Person
    {
        private int age;
        public int Age //Age不存储值,而是对age进行赋值和取值
        {
            set //赋值
            {
                if (value < 0)//属性和字段的区别:属性可以进行非法值的判断
                {
                    return;
                }
                this.age = value;//value是用户对属性赋值
            }
            get //取值
            {
                return this.age;
            }
        }
    }
第2种情况:可以编译通过,而且不报错
    class Person1
    {
        public int Age
        {
            set { }
            get { return 10; }
        }
    }
第3种情况:易出错
    class Person2
    {
        private int age;
        public int Age
        {
            set { this.Age = value; }//易出错,死循环
            get { return this.Age; }
        }
    }
第4种情况:声明了一个只读的属性,不能对属性赋值,但是可以读出属性
    class Person3
    {
        private int age;
        public int Age //声明了一个只读的属性
        {
            get { return age; }
        }
        public void IncAge()
        {
            age++;
        }
    }
第5中情况:编译器自动为我们生成了一个私有成员和set、get代码块
    class Person4
    {
        public int Age
        {
            set;
            get;
        }
        public string Name
        {
            set;
            get;
        }
    }



作者: 许庭洲    时间: 2013-8-1 06:41
值得学习ing!
作者: lvjayj    时间: 2013-8-1 22:22
嗯,学习了,加油!
作者: 小天    时间: 2013-8-2 00:19
lvjayj 发表于 2013-8-1 22:22
嗯,学习了,加油!

一起努力




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2