Как назначить типизированный объект c в список универсальных c объектов - PullRequest
0 голосов
/ 13 января 2020

Как я могу назначить объект generi c с типом T списку объектов generi c также с типом T другого класса?

Я пробовал следующее:

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

_openCLHandler - это обобщенный c класс с типом T, содержащий список объектов с IMem. С помощью команды CreateBuffer я хочу назначить объект IMem.

Можно ли перенаправить тип из одного объекта в другой?

1 Ответ

1 голос
/ 13 января 2020

Я не совсем уверен, что правильно понял вопрос.
Но если вы создадите объект на основе другого объекта, то вам придется передать исходный объект другому методу.

Может быть, это поможет

//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"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...