小编ukr*_*ine的帖子

调用构造函数的顺序

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#

5
推荐指数
1
解决办法
151
查看次数

标签 统计

c# ×1