2017-04-20 35 views
-1

如果我使用IDataContextA,我可以像IStoreable或smth一樣向T添加更多限制。但是,如果我只有這一個限制,還是有區別嗎?T的通用接口限制

public interface IDataContextA 
{ 
    IBusinessModel<T> GetModel<T>() where T : IBusinessObject; 
} 

public interface IDataContextB 
{ 
    IBusinessModel<IBusinessObject> GetModel<IBusinessObject>(); 
} 
+0

如果我理解正確的話,是的,你可以堆疊接口約束:'IBusinessModel GetModel ()其中T:IBusinessObject,IStoreable;' –

+1

在'IDataContextB.GetModel()''IBusinessObject'是一個通用參數,根本沒有任何限制。這可能不是你想要的。 – Lee

+0

李是對的。 TY – Olli

回答

0

你可以嘗試這樣的事:

public interface IGenericContext<T> 
{ 
    IBusinessModel<T> GetModel<T>() where T : IBusinessObject, IStoreable; 
} 

public interface IDataContextB : IGenericContext<IBusinessObject> 
{ 

}