[問題] 介面實作的問題

作者: wwe90425 (撒尿牛丸)   2017-01-15 00:34:12
之前看深入淺出c#有提到
如果有繼承介面的話,一定要實作介面的方法或屬性
但這幾天上班看到同事寫的程式碼時
卻發現沒有實作介面類別理的方法,卻可以順利compile沒報錯
想請問一下這是什麼原因?
附上程式碼:
介面:
public interface IRepository<T> where T : class
{
IQueryable<T> GetAll();
T GetById(int id);
void Add(T entity);
void Update(T entity);
void Delete(T entity);
void Delete(int id);
}
繼承介面的類別:
public interface IRepoPostSubDtl : IRepository<T_PostSubDtl>
{
}
另外想請問一下where T : class這是什麼意思
請高手幫忙解答,感謝~
作者: vi000246 (Vi)   2017-01-15 01:06:00
因為繼承它的也是一個介面 T是泛型 class代表傳進來的參數只能是class
作者: jizang (阿魯米)   2017-01-15 17:31:00
你Code裡面繼承介面的不是類別,仍然是一個介面...
作者: ryan10328 (大鳥)   2017-01-26 20:23:00
那個叫做泛型約束條件
作者: Litfal (Litfal)   2017-01-27 10:22:00
介面繼承介面通常用"擴充"這個詞 比較簡單易懂
作者: reichs   2017-01-28 17:43:00
class應該是約束T必須是參考型別,struct則是實值型別.

Links booklink

Contact Us: admin [ a t ] ucptt.com