有没有一种方法可以强制类必须具有接受int参数的构造函数?
例如,如果我有一个名为ItemDetail
的类并继承自名为ForceConstructor
的类,那么我的ItemDetail
类中是否必须有一个接受int参数的构造函数?>
public class ItemDetail : ForceConstructor
{
public ItemDetail(Data.Entities.Item item)
{
this.Item = item;
}
//MUST HAVE THIS
public ItemDetail(int id)
{
this.Item = ItemService.GetItem(id);
}
}
因此,从ForceConstructor
继承的任何类都必须具有int id构造函数。
答案 0 :(得分:0)
不,您不能那样做。必须在运行时对其进行检查,可以直接通过分析反射数据来进行检查,也可以通过尝试绑定到反射数据来间接进行检查(dynamic
)。
与C ++不同,C#没有元编程鸭子类型,并且您不能在接口或基类中声明构造函数。
答案 1 :(得分:0)
我认为您可以使用abstract
这里的答案(https://stackoverflow.com/a/41685659/2343826)应该给您一个更好的主意。 HTH