我試圖定義一個特定的接口爲我所有的庫實現,比僅僅是這樣的:IRepository與IRepository <T>
public abstract class GeneralizedRepository
{
readonly IDataModel _Model;
public GeneralizedRepository(IDataModel Model) {
if (Model == null)
throw new NullReferenceException();
_Model = Model;
}
public IDataModel DataModel { get { return _Model; } }
public abstract IEnumerable<T> GetAll<T>();
public abstract T GetOne<T>(Func<T, bool> predicate);
public abstract bool Contains<T>(Func<T, bool> predicate);
public abstract void Add<T>(T entity);
public abstract void Update<T>(T entity);
public abstract bool Remove<T>(Func<T, bool> predicate);
}
這是一類,因爲我得到的資料庫有共同的實例的DataModel
現在我有具體的實現爲:
public class DetailRep : GeneralizedRepository
{
public DetailRep(IDataModel Model) : base(Model) { }
public DetailRep(UnitOfWork Unit) : base(Unit.Model) { }
public override IEnumerable<T> GetAll<T>() {
throw new NotImplementedException();
}
public override T GetOne<T>(Func<T, bool> predicate) {
throw new NotImplementedException();
}
public override bool Contains<T>(Func<T, bool> predicate) {
throw new NotImplementedException();
}
public override void Add<T>(T entity) {
throw new NotImplementedException();
}
public override void Update<T>(T entity) {
throw new NotImplementedException();
}
public override bool Remove<T>(Func<T, bool> predicate) {
throw new NotImplementedException();
}
}
但它是一個詳細庫,我的意思是,我要全部更換牛逼的該類型詳細
但錯誤是在編譯時拋出:
類型參數聲明必須是一個標識符不是一個類型
問題的標題中的類型沒有出現在問題中!?你能再次檢查你的問題嗎?並提供有關錯誤的更多詳細信息。例如,產生錯誤的行?對基地(...)的呼叫是錯誤的,但在解釋之前,我首先需要了解你真正想要的。 – Achim 2011-04-21 19:33:27