如何定义实现接口并约束类型参数的泛型类?
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正确?
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();
}
}
Case C is the combination of case A and case B. Is that possible?
How to make case C right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
首先是实现的接口,然后是由
where
分隔的通用类型约束:First the implemented interfaces, then the generic type constraints separated by
where
:你可以这样做:
You can do it like this:
关键是要把“哪里……”放在最后
the thing is to keep 'where ...' at the end