为什么要在静态构造函数中初始化静态成员,而不是在C#中使用初始化程序初始化静态字段?
我经常看到这样的东西:
public static class AgeProvider
{
static ConditionalWeakTable<MAgeProvider, Fields> table;
static AgeProvider()
{
table = new ConditionalWeakTable<MAgeProvider, Fields>();
}
private sealed class Fields
{
internal DateTime BirthDate = DateTime.UtcNow;
}
}
有什么比这更好的了吗?
public static class AgeProvider
{
static ConditionalWeakTable<MAgeProvider, Fields> table = new ConditionalWeakTable<MAgeProvider, Fields>();
private sealed class Fields
{
internal DateTime BirthDate = DateTime.UtcNow;
}
}
也许会有某种性能差异?上面的示例来自here。