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を正しくする方法は?
最初に実装されたインターフェース、次にwhere
で区切られたジェネリック型制約:
class SampleC<T> : IDisposable where T : IDisposable // case C
{ // ↑
public void Dispose()
{
throw new NotImplementedException();
}
}
次のようにできます:
public class CommonModel<T> : BaseModel<T>, iMessage where T : ModelClass
class SampleC<T> : IDisposable where T : IDisposable // case C
{
public void Dispose()
{
throw new NotImplementedException();
}
}
class SampleC<T> : IDisposable where T : IDisposable
{
...
}