【问题标题】:Constraints are not allowed on non-generic declarations when define delegate定义委托时,非泛型声明上不允许约束
【发布时间】:2018-08-05 04:22:49
【问题描述】:
我想将delegate 定义如下:
public delegate void DataRequestingEventHandler(object sender,
CommandEventArgs e) where Entity : IEntityId<EntityKey>, new() where
EntityKey : IEntityKey, new();
但我收到此错误:
非泛型声明中不允许使用约束
有什么想法吗?
谢谢
【问题讨论】:
标签:
asp.net
entity-framework
delegates
【解决方案1】:
这是因为非泛型声明中不允许使用约束。因此,您需要将Generic Type Parameters 添加到您的声明中,使其成为通用声明。
看起来您打算将 Entity 和 EntityKey 用作泛型类型参数,但未能声明它们。同样按照惯例,泛型类型参数以T 开头,例如:
public delegate void DataRequestingEventHandler<TEntity, TEntityKey>(object sender, CommandEventArgs e)
where TEntity : IEntityId<TEntityKey>, new() where TEntityKey : IEntityKey, new();