2017-04-20 8 views
-1

IDataContextAを使用すると、TにIStoreableやsmthのような制限を追加できます。しかし、私はその1つの制限がある場合は、まだ違いがありますか?一般的なインターフェイスの制限T

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

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

IBusinessObject、IStoreable;' –

+1

を'IDataContextB.GetModel()'では 'IBusinessObject'はジェネリックパラメータであり、全く制限はありません。それはおそらくあなたが意図したものではありません。 – Lee

+0

リーが正しいです。タイ – Olli

答えて

0

あなたはこのような何かを試みることができる: `IBusinessModel GetModel ()T:私ははい、あなたは、インターフェイスの制約スタックすることができ、正しくあなたを理解していれば

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

public interface IDataContextB : IGenericContext<IBusinessObject> 
{ 

} 
関連する問題