【问题标题】:How to assign a generic typed object to a list of generic objects如何将泛型类型对象分配给泛型对象列表
【发布时间】:2020-01-13 13:13:05
【问题描述】:

如何将一个类型为 T 的通用对象分配给一个类型为 T 的通用对象列表?

我尝试了以下方法:

_openCLHandler.GetMemObjs()[i] = Cl.CreateBuffer<T>(_context, MemFlags.ReadWrite, _size, out _);

_openCLHandler 是一个类型为 T 的泛型类,它包含一个带有 IMem 的对象列表。使用 CreateBuffer 命令,我想分配一个 IMem 对象。

是否可以将类型从一个对象转发到另一个对象?

【问题讨论】:

  • 您的意思是一个列表的类型为T1,而另一个列表的类型为T2?因为如果两者都具有 T 类型 - 它们应该属于同一类。
  • T1 和 T2 是同一类型 - 但它们不在同一类中。
  • 假设 T1 和 T2 是浮动的
  • 那么它们是同一种类型 - 究竟是什么问题?

标签: c# class generics architecture


【解决方案1】:

我不太确定我是否正确理解了这个问题。
但是,如果您要在另一个对象的基础上创建一个对象,那么您必须将源对象传递给另一个方法。

也许这会有所帮助

//Your class
public class Foo
{
    public string Value { get; set; }
}

//Your method
private T CreateItem<T>(List<T> poList, string psValue) where T : class, new()
{
    T loNew = new T();

    if (loNew is Foo)
        (loNew as Foo).Value = psValue;

    return loNew;
}

那么你可以使用这些方法:

List<Foo> loList = new List<Foo>();
loList.Add(this.CreateItem(loList, "1"));

【讨论】:

    猜你喜欢
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    相关资源
    最近更新 更多