我正在構建一個實體庫,我有一個接口,IIdentifiable<T>
。因此,例如,由Guids標識的實體實施IIdentifiable<Guid> with public Guid Id { get; }
。到現在爲止還挺好。冗餘泛型參數?
我有一個接口IRepository<T, TIdentifier> where T : IIdentifiable<TIdentifier>
。
在我看來,TIdentifier泛型參數是多餘的,因爲已經有的信息保存在T的泛型參數中。有沒有什麼辦法可以讓我有一個更清晰的IRepository實現,我只需要指定T in我的商業代碼?
我在類似'IRepository<T> where T : IIdentifiable<T.GenericArgs[0]>
之後。
我懷疑這是可能的,但只是想我會問。也許新的C#4東西有這個東西呢?
事情是通用的Id屬性會隱藏非通用的一個 – 2010-08-13 11:52:36
嗯,因爲它們是接口,它不是'真正'隱藏。據推測,非通用的顯式實現將只是調用通用的Id屬性 – cordialgerm 2010-08-19 07:00:01