q09*_*987 51 c# generics inheritance constraints
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();
}
}
Run Code Online (Sandbox Code Playgroud)
案例C是案例A和案例B的组合.这可能吗?如何使案例C正确?
dtb*_*dtb 80
首先是实现的接口,然后通用类型约束分隔where:
class SampleC<T> : IDisposable where T : IDisposable // case C
{ // ?
public void Dispose()
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
class SampleC<T> : IDisposable where T : IDisposable // case C
{
public void Dispose()
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
public class CommonModel<T> : BaseModel<T>, IMessage where T : ModelClass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37154 次 |
| 最近记录: |