gpt4 book ai didi

c# - 没有装箱或类型参数转换

转载 作者:太空狗 更新时间:2023-10-29 23:22:00 24 4
gpt4 key购买 nike

我收到以下错误:

Error 1 The type 'T' cannot be used as type parameter 'T' in the generic type or method 'ClassLibrary1.A'. There is no boxing or type parameter conversion from 'T' to 'ClassLibrary1.ALayer'.

我正在尝试应用泛型来实现具有列表和继承的动态多态性。我有以下类结构:

public abstract class ALayer
{
public int Id { get; set; }
}

public abstract class A<T> where T: ALayer
{
public List<T> Layers;
}

我在 Middle 类的声明中遇到错误

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; }
}

最佳答案

我必须明确命名对中间类的约束

public abstract class Middle<T>:A<T> where T: ALayer
{
public int middleAttr { get; set; }
}

关于c# - 没有装箱或类型参数转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28613502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com