看板 C_Sharp 關於我們 聯絡資訊
之前看深入淺出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這是什麼意思 請高手幫忙解答,感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.129.240 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1484411657.A.ED8.html
vi000246: 因為繼承它的也是一個介面 T是泛型 class代表傳進來 01/15 01:06
vi000246: 的參數只能是class 01/15 01:06
jizang: 你Code裡面繼承介面的不是類別,仍然是一個介面... 01/15 17:31
ryan10328: 那個叫做泛型約束條件 01/26 20:23
Litfal: 介面繼承介面通常用"擴充"這個詞 比較簡單易懂 01/27 10:22
reichs: class應該是約束T必須是參考型別,struct則是實值型別. 01/28 17:43