gpt4 book ai didi

C#:非泛型类型中的泛型成员?

转载 作者:太空狗 更新时间:2023-10-30 01:10:47 26 4
gpt4 key购买 nike

我有一个包含对象列表的自定义控件。该控件由可视化设计器实例化,然后在代码中进行配置。该控件是一个显示实体列表的网格。

我有一个这样的初始化方法。

public void Initialise(ISession session, Type type, ICollection<IPersistentObject> objs)

IPersistentObject 是一个接口(interface)。但是,当我想分配实现 IPersistentObject 的东西的集合时,这不起作用。

所以我改成了这个。

public void Initialise<T>(ISession session, Type type, ICollection<T> objs) where T : class, IPersistentObject

但是现在我想把objs参数赋给一个类型为ICollection<IPersistentObject>的成员变量这是行不通的。

我不能使该类成为通用类,因为它是一个不能具有通用类型 AFAIK 的控件。我无法复制集合,因为控件必须修改传入的集合,而不是复制并修改它。

我该怎么办?

最佳答案

如果您不需要 objs 是一个实际的集合(例如使用 Add/Remove 方法等),那么您可以替换 ICollection IEnumerable

void Initialise(ISession session, Type type, IEnumerable<IPersistentObject> objs)

关于C#:非泛型类型中的泛型成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3967925/

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