Jan*_*Jan 5 .net c# optimization initialization static-members
我们有两个代码片段:
A:
public class Foo
{
private static Bar _unused = new Bar();
}
Run Code Online (Sandbox Code Playgroud)
B:
public class Foo
{
private static Bar _unused;
static Foo()
{
_unused = new Bar();
}
}
Run Code Online (Sandbox Code Playgroud)
在情况A中,CLR甚至不会调用Bar ctor(除非它是调试版本或附加调试器),但是在情况B中它在所有情况下都被调用.
问题是,在Bar构造函数中,可以进行调用,使其可以从其他地方访问 - 最常见的是事件订阅.
所以: