[英]There is no boxing or type parameter conversion
我收到以下錯誤:
錯誤1類型“T”不能用作泛型類型或方法“ClassLibrary1.A”中的類型參數“T”。 從'T'到'ClassLibrary1.ALayer'沒有裝箱或類型參數轉換。
我正在嘗試應用泛型來實現帶有列表和繼承的動態多態。 我有以下類結構:
public abstract class ALayer
{
public int Id { get; set; }
}
public abstract class A<T> where T: ALayer
{
public List<T> Layers;
}
我在中產階級的聲明中得到了錯誤
public abstract class Middle<T>:A<T>
{
public int middleAttr { get; set; }
}
這是我想要獲得動態多態性的第三層類
public class BLayer : ALayer
{
public int Id { get; set; }
}
public class B:Middle<BLayer>
{
public B() {
this.Layers = new List<BLayer>();
}
}
這個錯誤是什么?
任何幫助都感激不盡
答案我必須明確命名約束
public abstract class Middle<T>:A<T> where T: ALayer
{
public int middleAttr { get; set; }
}
我必須在Middle類上明確命名約束
public abstract class Middle<T>:A<T> where T: ALayer
{
public int middleAttr { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.