黑马程序员技术交流社区
标题:
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