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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 不是炎亚纶 于 2013-10-30 20:01 编辑

比如 const int age = 18;  
把一个Person类的 age 属性set删除   
class Person
    {
        private int age = 18;

        public int Age
        {
            get { return age; }
        }
    }
这个age也不能再赋值 ,请问分别是什么导致他们不能改变,尽量从内存的微观角度来说,谢谢了 。

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

2 个回复

倒序浏览
GET SET实际上是对这个变量修改和提取的一个通道,这个变量本身并没有被设定只读属性,是程序员通过逻辑来实现的,而这个变量的内存是可以通过手动修改的
CONST则是.NET框架规定的只读,不能手动修改

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
首先我要说的你的在Person中的age是可以修改的,在Person类内部的任何地方都可以修改age,对于你的Age这个属性只是对age的一个封装,告诉本Person类外部的其他类这个Age是只读的,其实和age没有直接的关系。

其次,你的 const int age = 18; 是.net中的常量,也就是说这个常量在程序编译的时候就已经产生了额,并且系统会将其放在一个只读区域

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

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