bit*_*yte 6 c# generics inheritance type-parameter
我想重写派生类中的通用方法。问题是我想要一个具体的类型参数实现,如下所示:
namespace Stumped
{
public class Generic<T> where T : new()
{
public virtual T Foo()
{
return new T();
}
public virtual TAnother GenericMethod<TAnother>() where TAnother : new()
{
return new TAnother();
}
}
public class Concrete : Generic<Inner1>
{
// Concrete return type. Works as expected.
public override Inner1 Foo()
{
return base.Foo();
}
// Why doesn't this make sense? Shows 'Type parameter "Inner2" hides class "Inner2"'.
public override Inner2 GenericMethod<Inner2>()
{
return base.GenericMethod<Inner2>();
}
}
public class Inner1 { }
public class Inner2 { }
}
Run Code Online (Sandbox Code Playgroud)
如前所述,编译器告诉我:
类型参数“Inner”隐藏类“Inner”
我希望我的实现能够正常工作,而不必在此派生类中使用另一个通用参数。
为什么这没有意义?
归档时间: |
|
查看次数: |
3374 次 |
最近记录: |