2011-02-16 146 views
0

我有一个名为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);那么我该如何做到这一点?

谢谢你试图帮助我!

回答

3

创建一个接口:

public interface IAdManager<T> 
{ 
    bool IsNull(T obj); 
} 

那么你的客户端类需要实现IAdManager,如:

public class AD_MANAGER : MANAGER, IAdManager<AD_MANAGER> 
+0

权,这被称为通用接口? – bAN 2011-02-16 10:22:04

+0

是的。请参阅http://msdn.microsoft.com/en-us/library/kwtft8ak(v=vs.80).aspx – 2011-02-16 10:22:42

0

泛型应该可以帮助你实现这一点,我猜!

0

可以使用两种不同的接口IAd_Manager和IPers_Manager?

或备选地声明该方法为:

布尔ISNULL(T myParam);

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) { 
    } 
} 
相关问题