我讀的文件IRepository.cs亞音速3. 的源代碼,我發現以下幾點:加載方法被定義爲通用的IRepository接口
public interface IRepository<T>
{
IQueryable<T> GetAll();
PagedList<T> GetPaged<TKey>(Func<T, TKey> orderBy, int pageIndex, int pageSize);
...many other lines
bool Load<T>(T item, Expression<Func<T, bool>> expression) where T : class, new();
bool Load<T>(T item, string column, object value) where T : class, new();
}
通知及其泛型類型名稱是與導致編譯器警告的接口的通用類型相同。
我的問題是:加載方法真的是通用的或它是一個錯誤?如果這些方法的目的是通用的,我們是否應該將類型名稱從「T」改爲類似「E」的類型以使編譯器感到滿意?
那麼爲什麼這些聲明會添加自己的約束? – 2009-07-16 07:33:49
好的,我相應地修改了代碼,它導致編譯器錯誤,我不得不修改其他幾個使項目編譯的文件將很快提交更改,以便檢查我是否做得正確。 – 2009-07-16 07:36:51