我基本上想要这样做:
class UILockable<T> : T
where T : UIWidget
{
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.我见过人们建议你这样做:
class UILockable<T>
where T : UIWidget
{
private T _base;
}
Run Code Online (Sandbox Code Playgroud)
这将要求我覆盖UILockable需要的每个函数并将其转发给T.这是不可能的,因为T可能来自UIWidget并且具有自己独特的抽象/虚拟方法.
有没有办法简单地从T继承?
Meh*_*ari 22
您不能从泛型类型参数继承.C#泛型与C++模板非常不同.继承type参数要求类具有基于类型参数的完全不同的表示,这与.NET泛型不同.它们在IL和本机级别上是相同的(对于所有引用类型参数).
| 归档时间: |
|
| 查看次数: |
13251 次 |
| 最近记录: |