Как работают статические конструкторы для универсальных типов?

public abstract class EventSystemBase<T, K> : IAutoEvent
    where T : Event
    where K : IAutoEvent, new()
{
    public static T Instance { get { return EventSystem.Events.OfType<T>().FirstOrDefault(); } }
    public static IAutoEvent AutoEventInstance { get { return new K(); } }

    static EventSystemBase()
    {
        EventBot.Register(new EventBotEntry(Instance.Name, AutoEventInstance));
    }

    [...]
}

Я действительно не понимаю, как это компилируется.

  • Когда запускается статический конструктор?
  • Почему я могу использовать универсальные типы в статических членах?
  • Как он должен знать, какие типы применять?
7
задан Mark Cidade 12 April 2011 в 01:57
поделиться