gpt4 book ai didi

泛型类型中的 C# 多态性

转载 作者:太空狗 更新时间:2023-10-29 22:34:42 25 4
gpt4 key购买 nike

class Base
{}

class Sub : Base
{}


void AddNewBase(Base t, LinkedList<Base> list){ ... }
...
{

Sub asub = new Sub();

LinkedList<Sub> asubList = new LinkedList<Sub>();
AddNewBase(asub,asubList) // doesn't work
}

基本上,我有一个自定义插入函数,它接受一个新项目和一个要放入的列表,它会做一些“排序”工作以找到将它放入列表中的合适位置。

问题是,我想根据“Base”中的属性执行此操作,因此最好只有一个函数可以对所有子类型列表执行此操作。

我想我想要的是:

static void AddNewBase<T>(T t, LinkedList<T> list){ ... }

但有一些澄清 T 的方法,例如:“其中 T 是 Base 的子类”

最佳答案

可以声明Constraints on Type Parameters :

static void AddNewBase<T>(T t, LinkedList<T> list) where T : Base { ... }

关于泛型类型中的 C# 多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154899/

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