在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 ??
}
}
这被认为是不错的编程习惯吗?
答案 0 :(得分:4)
是的,你可以肯定的。您可以参考this链接。但是,我没有看到以这种方式设置该向量的目的。也许你更喜欢静态构造函数,例如:
static X()
{
v.Set(1, 1);
}