gpt4 book ai didi

c# - 对待对象就像他们是 parent 一样

转载 作者:太空狗 更新时间:2023-10-29 21:50:12 26 4
gpt4 key购买 nike

下面的代码给我一个错误,说在我调用 doStuffToLines(segments)

时有无效的参数

既然我的 DimensionLineSegment 继承自 Lines,难道我不能这样做吗?

    private void doStuff()
{
List<DimensionLineSegment> segments = new List<DimensionLineSegment>();

doStuffToLines(segments);

}

private void doStuffToLines(List<Line> lines)
{

}

最佳答案

您不能将具体类型传递给该方法,因为 List 不是协变的。

你可以尝试这样的事情:

public void doStuffToLines<T>(IList<T> lines) where T : Line
{
//do some thing
}

通过指定泛型约束,您可以限制传递给 Line 类型对象或其派生后代的泛型类型。

需要注意的一件事是,如果您使用的是 .NET 4.0,则可能会将您的方法从接受 List 更改为 IEnumerable,因为 T 泛型参数是协变的。

关于c# - 对待对象就像他们是 parent 一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193985/

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