A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小天 中级黑马   /  2013-7-31 22:30  /  1270 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小天 于 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;
        }
    }


评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

3 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
嗯,学习了,加油!
回复 使用道具 举报
lvjayj 发表于 2013-8-1 22:22
嗯,学习了,加油!

一起努力
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马