public interface IAutomatizableEvent
{
Event AutomatizableEventItem { get; }
bool CanBeAutomatic { get; }
bool IsAutomaticallyRunning { get; }
bool OnBeforeAutomaticCall();
bool OnAutomaticCheck();
void OnAutomaticStart();
void OnAutomaticCancel();
}
public abstract class AutomatizableEvent : IAutomatizableEvent
{
public AutomatizableEvent()
{
}
#region Implementation of IAutomatizableEvent
public abstract Event AutomatizableEventItem { get; }
public abstract bool CanBeAutomatic { get; }
public abstract bool IsAutomaticallyRunning { get; }
public abstract bool OnBeforeAutomaticCall();
public abstract bool OnAutomaticCheck();
public abstract void OnAutomaticStart();
public abstract void OnAutomaticCancel();
#endregion
}
public static class EventSystem
{
public static List<EventSystemBase<Event, AutomatizableEvent>> AutomatizableEvents { get; set; }
[...]
}
「類型‘AutomatizableEvent’必須有一個公共的無參數構造函數,以便在通用類使用它作爲參數‘K’‘EventSystemBase’」必須有一個公共無參數構造函數,它不?
public abstract class EventSystemBase<T, K> : AutomatizableEvent
where T : Event
where K : AutomatizableEvent, new()
我的問題是...沒有按」 t AutomatizableEvent DO有一個公共無參數構造函數?
爲了滿足'new()'約束條件,您必須能夠使用'= new AutomatizableEvent()'初始化這個類,因爲它是抽象的。創建一個具體的子類並使用它。 – ja72 2011-04-14 00:41:58