2009-08-09 107 views
9
一起

基本C#語法問題:接口聲明與泛型約束

所以我有這個類

public class BrandQuery<T> : Query<T> where T : Ad 
{ 
    //... 
} 

如何指定BrandQuery實現一個接口,說IDisposable的?

這顯然是錯誤的方式:

public class BrandQuery<T> : Query<T> where T : Ad, IDisposable 
{ 
    //... 
} 

,因爲這隻會把通用約束上T.

回答

17

泛型類型約束遵循所有的基類/接口:

public class BrandQuery<T> : Query<T>, IDisposable 
    where T : Ad 
{ 
    //... 
}