我有一个父类,如下所示:
public abstract class Business<T> : IBusiness<T> where T : Entity
{
protected Data<T> data;
public IEnumerable<T> Select(DataContext db)
{
return data.Select(db);
}
}
我需要在子clas上填充“data”成员的实例。
目前我正在这样做:
public class UserBusiness : Business<User>
{
public UserBusiness()
{
data = new UserData();
}
}
我想知道是否还有其他方法。
我还在父类链接中使用了一个抽象函数:
protected abstract Data GetData();
强制子类传递实例。
哪种方法最好?有什么建议吗?
提前致谢
答案 0 :(得分:2)
创建一个抽象构造函数:
public abstract class Business<T> : IBusiness<T> where T : Entity
{
protected Data<T> data;
Business<T>( T _data)
{
data = _data
}
public IEnumerable<T> Select(DataContext db)
{
return data.Select(db);
}
}
然后在派生的构造函数中调用它:
public class UserBusiness : Business<User>
{
public UserBusiness() :
base (new UserData())
{
}
}