public abstract class EventSystemBase : IAutoEvent
where T : Event
where K : IAutoEvent, new()
{
public static T Instance { get { return EventSystem.Events.OfType().FirstOrDefault(); } }
public static IAutoEvent AutoEventInstance { get { return new K(); } }
static EventSystemBase()
{
EventBot.Register(new EventBotEntry(Instance.Name, AutoEventInstance));
}
[...]
}
Я не совсем понимаю, как это компилируется.
Когда статический конструктор запущен?
Почему я могу использовать универсальные типы в статических членах?
[code]public abstract class EventSystemBase : IAutoEvent where T : Event where K : IAutoEvent, new() { public static T Instance { get { return EventSystem.Events.OfType().FirstOrDefault(); } } public static IAutoEvent AutoEventInstance { get { return new K(); } }
[list] [*]Когда статический конструктор запущен? [*]Почему я могу использовать универсальные типы в статических членах? [*]Как узнать, какие типы применять? [/list]