【发布时间】:2011-04-10 23:33:48
【问题描述】:
我目前正在处理一个 C# 项目,其中一个主要的基本形式是由其他几种形式派生的。我使用实体类来处理系统中表示的每个实体的数据操作:项目、仓库、帐户等。这意味着这些派生形式中的每一个都使用自己的 DAO。
我可以很好地从这些派生形式调用基本功能,我现在正在努力解决的是:由于每个形式都有不同的实体类,我需要为每个派生类指定一个特定的方法,而唯一的区别是基类和派生类是实体类的类型。
我有这样的事情:
int id;
int.TryParse(key.Text, out id);
instance1 = adapter1.Populate(id);
if (instance != null)
{
bindingSource.DataSource = instance1;
this.GoEdit();
this.MarkDeleted();
}
因此,例如,阻止我使用此方法的通用版本从我的数据库中填充实体类的原因是,在父表单中定义这些方法时,我必须为我的实体使用基类而没有实现,所以最后我不能使用通用版本。
困扰我的是,我必须在每个派生形式的实现中一遍又一遍地复制这段代码(对于这种类型的每种方法),只是为了将实例设置为特定的实体类。应该有另一种方法,我希望以前有类似情况的人可以帮助我找到解决方法..
【问题讨论】:
-
您能否详细说明instance1 和adapter1 是什么?
-
在我的基本形式中,instance1 是基本实体类,adapter1 是具有所有更新/插入/删除方法的数据访问类。我使用实体类作为来自表字段的映射只是为了操作数据..所以问题是在我的基本表单中 instance1 正在为基本上为空的所有实体引用基类,我需要一种调用派生类的方法对于每一种派生形式。
标签: c# polymorphism