class Sample<T> : IDisposable // case A
{
public void Dispose()
{
throw new NotImplementedException();
}
}
class SampleB<T> where T : IDisposable // case B
{
}
class SampleC<T> : IDisposable, T : IDisposable // case C
{
public void Dispose()
{
throw new NotImplementedException();
}
}
案例C是案例A和案例B的组合。这可能吗? 如何使案例C正确?
答案 0 :(得分:75)
首先是已实现的接口,然后是由where
分隔的泛型类型约束:
class SampleC<T> : IDisposable where T : IDisposable // case C
{ // ↑
public void Dispose()
{
throw new NotImplementedException();
}
}
答案 1 :(得分:6)
class SampleC<T> : IDisposable where T : IDisposable // case C
{
public void Dispose()
{
throw new NotImplementedException();
}
}
答案 2 :(得分:6)
你可以这样做:
public class CommonModel<T> : BaseModel<T>, IMessage where T : ModelClass
答案 3 :(得分:2)
class SampleC<T> : IDisposable where T : IDisposable
{
...
}