黑马程序员技术交流社区

标题: const常量和一个类的属性只读都不能再次赋值,有区别吗 [打印本页]

作者: 不是炎亚纶    时间: 2013-10-30 15:12
标题: const常量和一个类的属性只读都不能再次赋值,有区别吗
本帖最后由 不是炎亚纶 于 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也不能再赋值 ,请问分别是什么导致他们不能改变,尽量从内存的微观角度来说,谢谢了 。
作者: Goes_By    时间: 2013-10-30 15:48
GET SET实际上是对这个变量修改和提取的一个通道,这个变量本身并没有被设定只读属性,是程序员通过逻辑来实现的,而这个变量的内存是可以通过手动修改的
CONST则是.NET框架规定的只读,不能手动修改
作者: 黑飞马    时间: 2013-10-30 17:14
首先我要说的你的在Person中的age是可以修改的,在Person类内部的任何地方都可以修改age,对于你的Age这个属性只是对age的一个封装,告诉本Person类外部的其他类这个Age是只读的,其实和age没有直接的关系。

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




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