泛型方法重写 c# 存在显式转换(是否缺少强制转换?
本文关键字:转换 是否 重写 存在 显式转换 泛型方法 | 更新日期: 2023-09-27 18:33:52
public class Base
{
}
public class Rabbit : Base
{
}
public abstract class OO
{
public abstract ICollection<T> Test<T>() where T : Base;
}
public class LOL : OO
{
public override ICollection<T> Test<T>()
{
return new Collection<Rabbit>();
}
}
这种类的形成给出了以下错误。
"System.Collections.ObjectModel.Collection"到"System.Collections.Generic.ICollection"。存在显式转换(您是否缺少强制转换?
知道如何解决这个问题吗?
试试这个:
public class LOL : OO
{
public override ICollection<T> Test<T>()
{
return (ICollection<T>) new Collection<Rabbit>();
}
}
public class Base
{
}
public class Rabbit : Base
{
}
public abstract class OO
{
public abstract ICollection<T> Test<T>() where T : Base;
}
public class LOL : OO
{
public override ICollection<T> Test<T>()
{
return new Collection<T>();
}
}
或
public class Base
{
}
public class Rabbit : Base
{
}
public abstract class OO
{
public abstract ICollection<T> Test<T>() where T : Base;
}
public class LOL : OO
{
public override ICollection<T> Test<T>()
{
return new Collection<Rabbit>() as ICollection<T>;
}
}