静态变量声明的时间

时间:2013-01-15 00:16:27

标签: c# c#-4.0

在C#4.0及更高版本中,是否(严格地)定义了(在任何可能的编译器中?)类的静态变量,即它们的内存分配?我可以确定在进入任何创建实例的构造函数之前,是否已经分配了该类的静态变量?

请参阅以下示例:

class X
{
static Vector2 v = new Vector2();

public X()
  {
  v.Set(1,1); // Can I be sure that memory for v is allocated here ? Always ??
  }
}

这被认为是不错的编程习惯吗?

1 个答案:

答案 0 :(得分:4)

是的,你可以肯定的。您可以参考this链接。但是,我没有看到以这种方式设置该向量的目的。也许你更喜欢静态构造函数,例如:

static X()
{
   v.Set(1, 1);
}