【发布时间】:2011-04-14 00:27:16
【问题描述】:
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' 类型必须有一个公共的无参数构造函数,才能将其用作泛型类 'EventSystemBase' 中的参数 'K'”
public abstract class EventSystemBase<T, K> : AutomatizableEvent
where T : Event
where K : AutomatizableEvent, new()
我的问题是...... AutomatizableEvent DO HAVE 没有公共无参数构造函数吗??
【问题讨论】:
-
要满足
new()约束,您必须能够使用=new AutomatizableEvent()初始化类,因为它是抽象的,所以您不能。创建一个具体的子类并使用它。