2011-02-16 154 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) { 
    } 
} 
相關問題