作者wwe90425 (撒尿牛丸)
看板C_Sharp
標題[問題] 介面實作的問題
時間Sun Jan 15 00:34:12 2017
之前看深入淺出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