C#中实例构造函数能不能给静态字段初始化?求解答

如题所述

实例构造函数是不会给静态变量初始化的,只能给静态变量赋新的数值。追问

谢谢你,在实例构造函数,可以给静态字段赋值吗?如果不行,静态字段除了声明时赋值还能怎么赋值?

追答

可以,实例的函数(包括构造函数)可以给静态字段赋值,每次赋值后,其他实例引用时会获取改变后的值。

温馨提示:内容为网友见解,仅供参考
第1个回答  2022-01-07
不能初始化,但是可以赋值,但是不建议这样做,这样会让静态字段有被改变的风险,可以用静态构造器赋值
第2个回答  2013-05-17
可以,静态字段只是不初始化也可以,除此之外和普通变量没有太大区别。追问

谢谢你,在实例构造函数,可以给静态字段赋值吗?如果不行,静态字段除了声明时赋值还能怎么赋值?

追答

什么时候都可以,当然也可以在构造函数里赋值。静态字段是指系统默认认为已经赋过值了,如果程序一直在运行,那么只要不赋值,不管创建多少个实例,这个静态变量的值都是一样的,所以静态变量一般用来保存一些值,达到多实例共享的目的。

第3个回答  2013-05-17
静态字段初始化在实例构造函数调用前进行
不过实例构造函数可以修改静态字段追问

谢谢你,在实例构造函数,可以给静态字段赋值吗?如果不行,静态字段除了声明时赋值还能怎么赋值?

第4个回答  2017-12-24
如果你的属性只是简单的做赋值和取值的话 效果一样其实
不过推荐你用属性 因为有可能你的属性在赋值或取值的时候会做一些操作 所以最好让字段赋值的时候经过这些操作避免无效值

不需要担心赋值属性会慢 因为如果C#编译器检测到属性简单赋值 会自动替换成字段赋值的 这点你可以从IL代码中看出来
相似回答