class Program
{
static void Main(string[] args)
{
Foo.Calc("Foo");
}
}
public abstract class Base
{
protected static Func<string, int> CalcFunction;
public static void Calc(string str)
{
Console.WriteLine(CalcFunction(str));
}
}
public class Foo : Base
{
static Foo()
{
CalcFunction = s => { return s.Length; };
}
}
Run Code Online (Sandbox Code Playgroud)
当我试着打电话给Foo.Calc("Foo"); 我有异常"对象引用没有设置为对象的实例." 因为没有调用Foo的静态构造函数而CalcFunction为null.我不想在Foo类中使用Init方法,并在调用Calc()之前调用它.
我可以改变调用构造函数的顺序吗?
c# ×1