【发布时间】:2018-08-12 13:13:04
【问题描述】:
我对静态变量很困惑,实际上我是在程序下面执行的。
class ABC
{
public static int prop { get; set; }
const int i =5;
static int j;
public ABC()
{
prop = 8;
j = 9;
Console.WriteLine("Under ABC class's constructor.");
}
public int getValue()
{
j = 6;
prop = 89;
return j;
}
}
class Program
{
static void Main(string[] args)
{
ABC obj = new ABC();
Console.WriteLine(obj.getValue());
//Console.WriteLine(ABC.j);
Console.ReadLine();
}
}
并且它的执行没有任何编译或运行时错误。
我有以下困惑。
- 我们可以在非静态构造函数中分配静态变量/属性吗?
- 我们也可以在实例方法中分配静态变量/属性吗?
- 如果我们可以在以上两种情况下对静态变量/属性进行赋值,那么静态构造函数有什么用?
- 最后,我们可以分配/初始化静态变量/属性的类中的哪些位置?
【问题讨论】:
-
是的,camilo,我阅读了这个文档,我主要关心的是,如果我们可以从同一个类中的任何位置(如普通变量)分配静态变量/属性,那么静态构造函数有什么用?正如我从一开始就知道的那样,静态构造函数用于初始化/将值分配给类的静态变量。
-
有些会员否决了我的问题,请阅读完整的问题,然后想想我是否做过任何研究?