Почему нужно хотеть инициализировать статические члены в статическом конструкторе вместо статических полей с инициализаторами в C #? - PullRequest
0 голосов
/ 20 октября 2019

Почему нужно хотеть инициализировать статические члены в статическом конструкторе вместо статических полей с инициализаторами в 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;
    }
}

Может быть, какая-то разница в производительности? Пример выше от здесь .

...