首页新闻找找看学习计划

C# 类中定义自己类型的静态字段

0
[待解决问题]

举例说明,如下:
class Test
{
public static Test test=new Test();
public static int X=1;
public int Y=2;
}

经测试得之test.X=0;test.Y=2;
静态成员是按顺序执行的,且比非静态成员构造顺序优先,哪为什么非静态成员Y的值为2?

慢慢求学路的主页 慢慢求学路 | 菜鸟二级 | 园豆:217
提问于:2018-08-22 00:23
< >
分享
所有回答(2)
0

是Test.X吧. 要是你能test.X说明哪里有问题啦.

test.Y当然是要等于2的.

然后这些默认值赋值语句.在编译的时候都会放到默认构造函数里去.

所以也就没有什么按顺序执行的说法.对外面来说.都是一次性的.

总结:你的问题很怪.为什么Y值不应该为2?

吴瑞祥 | 园豆:28731 (高人七级) | 2018-08-22 11:45

是Text.text.X的值为0,Text.text.Y的值为2

支持(0) 反对(0) 慢慢求学路 | 园豆:217 (菜鸟二级) | 2018-08-22 12:40

@慢慢求学路: 可是没有Text.text.X啊.你只能Text.X的.

支持(0) 反对(0) 吴瑞祥 | 园豆:28731 (高人七级) | 2018-08-22 12:53

不好意思,打错字母了。测试结果是Test.test.X=0,Test.test.Y=2。就是创建Test类后,直接调用里面的第一个静态字段,然后测试其值

支持(0) 反对(0) 慢慢求学路 | 园豆:217 (菜鸟二级) | 2018-08-22 14:41

@慢慢求学路: 不是说了.没有Test.test.X 你的X是静态字段.不是成员字段.在Test.test里是点不出来的.

支持(0) 反对(0) 吴瑞祥 | 园豆:28731 (高人七级) | 2018-08-22 15:15

谢谢,弄明白问题所在了

支持(0) 反对(0) 慢慢求学路 | 园豆:217 (菜鸟二级) | 2018-08-22 18:40
0

你弄混了,
X是Test的成员,不是test的成员
结果是:Test.X=1;
Test.test.X(这个不存在)

Luckyfish小文 | 园豆:327 (菜鸟二级) | 2018-09-20 16:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册