差异初始化静态变量内联或静态构造函数在C#

我想知道在静态成员内联初始化之间有什么区别,如:

class Foo
{
    private static Bar bar_ = new Bar();
}

或者在静态构造函数中初始化它,如:

class Foo
{
    static Foo()
    {
        bar_ = new Bar();
    }
    private static Bar bar_;
}
如果您的类型中有一个静态构造函数,则由于beforefieldinit标志不再被应用,它会改变类型初始化。

它也影响初始化顺序 – 变量初始化器都在静态构造函数之前执行。

那就是我所知道的。

http://stackoverflow.com/questions/218461/difference-initializing-static-variable-inline-or-in-static-constructor-in-c-sha

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:差异初始化静态变量内联或静态构造函数在C#