接口声明与通用约束一起使用

Bja*_*rtN 11 c# generics

基本的C#语法问题:

所以我有这门课

public class BrandQuery<T> : Query<T> where T : Ad
{
  //...
}
Run Code Online (Sandbox Code Playgroud)

如何指定BrandQuery实现一个接口,比如IDisposable?

这显然是错误的方式:

public class BrandQuery<T> : Query<T> where T : Ad, IDisposable
{
  //...
}
Run Code Online (Sandbox Code Playgroud)

因为这只会对T提出一般约束

Mar*_*ell 21

泛型类型约束遵循所有基类/接口:

public class BrandQuery<T> : Query<T>, IDisposable
    where T : Ad
{
  //...
}
Run Code Online (Sandbox Code Playgroud)