gpt4 book ai didi

c# - 无法实现接口(interface)成员,因为它没有 List 的匹配返回类型

转载 作者:IT王子 更新时间:2023-10-29 04:33:49 25 4
gpt4 key购买 nike

我有接口(interface) IChildIParent . IParent有一个成员是 List<IChild> .

我希望有实现 IParent 的类每个类都有一个实现 IChild 的成员:

public interface IChild
{
}

public interface IParent
{
List<IChild> a { get; set; }
}

public class ChildA : IChild
{
}

public class ChildB : IChild
{
}

public class ParentA : IParent
{
public List<ChildA> a { get; set; }
}

public class ParentB : IParent
{
public List<ChildB> a { get; set; }
}

但是,这段代码不会编译。错误是:

`MyApp.Data.ParentA` does not implement interface member `MyApp.Data.IParent.a`.
`MyApp.Data.ParentA.a` cannot implement `MyApp.Data.IParent.a` because it does not have
the matching return type of `System.Collections.Generic.List<MyApp.Data.IChild>`.

最佳答案

使 IParent 通用:

public interface IChild
{
}

public interface IParent<TChild> where TChild : IChild
{
List<TChild> a { get; set; }
}

public class ChildA : IChild { }

public class ChildB : IChild { }

public class ParentA : IParent<ChildA>
{
public List<ChildA> a { get; set; }
}

public class ParentB : IParent<ChildB>
{
public List<ChildB> a { get; set; }
}

关于c# - 无法实现接口(interface)成员,因为它没有 List<IInterface> 的匹配返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11955605/

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