给定以下类和层次结构:
public abstract class AbsractClass<T>
{
public T Id { get; private set; }
}
public class ImplementationA : AbsractClass<Guid> { }
public class ImplementationB : AbsractClass<int> { }
Run Code Online (Sandbox Code Playgroud)
我应该在where子句/约束中使用什么约束来指定泛型 T 必须是 AbsractClass 的实现。这意味着实体将接受ImplementationA 或ImplementationB。
public abstract class Entity<T> // where : T ?
{
}
Run Code Online (Sandbox Code Playgroud)
这是可能的还是我应该使用接口?
您需要添加两个通用参数才能使其工作:
public abstract class Entity<T, TKey> where T : AbstractClass<TKey>
{
}
Run Code Online (Sandbox Code Playgroud)
通用接口的行为方式相同。
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |