我需要初始化一个将从类的许多实例访问的字段.初始化需要一些计算,并且将有数百万个实例,因此我需要初始化仅发生一次,并且要在所有实例之间共享变量以节省内存.最后,我想在抽象类中实现这一点.
如何初始化运行时my_val计算的静态变量CalculateMyVal()?
abstract class MyAbstract
{
static readonly int my_val;
int CalculateMyVal()
{
int x = 1;
// Long Calculation on x
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
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;
}
}
Run Code Online (Sandbox Code Playgroud)