为什么要在静态构造函数中初始化静态成员,而不是在C#中使用初始化程序初始化静态字段?

时间:2019-10-20 11:59:01

标签: c# .net constructor static initialization

为什么要在静态构造函数中初始化静态成员,而不是在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

0 个答案:

没有答案