First the implemented interfaces, then the generic type constraints separated by where:
class SampleC<T> : IDisposable where T : IDisposable // case C
{ // ↑
public void Dispose()
{
throw new NotImplementedException();
}
}