我需要初始化一个将从类的许多实例访问的字段。初始化需要一些计算,并且会有数百万个实例,所以我只需要初始化发生一次,并且所有实例之间共享变量以节省内存。最后,我想在一个抽象类中做到这一点。
如何在运行时初始化CalculateMyVal()
计算my_val
静态变量?
abstract class MyAbstract
{
static readonly int my_val;
int CalculateMyVal()
{
int x = 1;
// Long Calculation on x
return x;
}
}
如果你想初始化你的静态变量,你可以使用static constructor
:
public abstract class MyAbstract
{
static readonly int my_val;
static MyAbstract()
{
my_val = CalculateMyVal();
}
static int CalculateMyVal()
{
int x = 1;
// Long Calculation on x
return x;
}
}