age这个属性我明明设置了值的,为什么运行之后结果却是0

有没有同志帮我看一下,age这个属性我明明设置了值的,为什么运行之后结果却是0

img

调用Console.WriteLine(Program2.AGE); 试试。AGE是大写。

Program1 Program2 = new Program1();
Console.WriteLine(Program2.AGE); 
Console.ReadLine();

(1)解释如下:
代码第一句:Program1 Program2 = new Program1();
定义了Program1一个对象实例,调用了Program1类的构造函数,此时并没有调用类的属性AGE的set或get方法。
同时类的int成员变量初始一般默认为0。所以代码第二句打印age的值为0。
如果代码第二句写Program2.AGE,将自动会调用属性AGE的get方法,进而间接修改age的值。

(2)另外说明:
其中大写AGE是类的公开public属性,给外部读写访问的。小写age一般定义为是类内部的私有数据变量,外部不可访问。
首先搞清楚get和set有什么用,在面向对象编程里面,有的类的数据是私有的,是封装起来的,所以为了读取和写入对应的私有数据,c#采用了关键字get和set,其中get负责读取私有数据,set负责写入私有数据。

亲,如果解答满意的话,请采纳一下,谢谢。

没调用 set