我有一个名为MANAGER的课程
public abstract class MANAGER
{
}
没有什么复杂的: - )
这个类有多个子类 示例AD_MANAGER
public class AD_MANAGER : MANAGER
{
#region MEMBRES
private AD_PROVIDER ad_provider;
#endregion
//================================================================================
#region ACCESSEURS
public AD_PROVIDER Ad_provider
{
get { return ad_provider; }
set { ad_provider = value; }
}
#endregion
//================================================================================
#region CONSTRUCTORS
public AD_MANAGER()
{
this.ad_provider = new AD_PROVIDER();
}
#endregion
//================================================================================
#region Public methods
#region Get
Stuff Here ..
#endregion
#endregion
}
和其他..每个经理“管理”一个名为ENTITE的特定类。因此,对于AD_MANAGER用于管理AD_ENTITE,ENTITE类只包含字段无方法..
所以这是我的问题: 我如何指定每个MANAGER类必须实现一个方法,例如isNull()但是参数类型为_ENTITE类相关..
所以AD_MANAGER必须实现bool isnull(AD_ENTITE aENTITE)
方法,而PERS_MANAGER必须实现bool isnull(PERS_ENTITE aPERS)
方法。
使用界面,您无法声明bool isnull(anytype);
那么我该如何做到这一点?
感谢您帮助我!
答案 0 :(得分:3)
创建一个界面:
public interface IAdManager<T>
{
bool IsNull(T obj);
}
然后您的客户端类需要实现IAdManager
,如:
public class AD_MANAGER : MANAGER, IAdManager<AD_MANAGER>
答案 1 :(得分:2)
是的,仿制药可能会有所帮助。
public abstract class MANAGER<T>
{
public abstract bool isnull(T item);
}
和
public class AD_MANAGER : MANAGER<Ad_provider>
{
public override bool isnull(Ad_provider item) {
}
}
答案 2 :(得分:0)
Generics应该帮助你实现这一目标,我想!
答案 3 :(得分:0)
您可以使用两个不同的接口IAd_Manager和IPers_Manager吗?
或者将方法声明为:
bool isnull(T myParam);