Я определил этот метод:Общий метод и преобразования: как определить, что тип 1 преобразован в тип 2
public static List<T2> ConvertList<T1, T2>(List<T1> param) where T1:class where T2:class
{
List<T2> result = new List<T2>();
foreach (T1 p in param)
result.Add((T2)p);
return result;
}
Для преобразования списков типа 1 в списках Тип 2.
К сожалению, я забыл , что C# компилятор не может сказать, что на данном этапе T1
является конвертируемым в T2
, поэтому он выдает ошибку:
error CS0030: Cannot convert type T1 to T2
может кто-то направить меня, как сделать это про Perly? Мне нужен этот метод только для преобразования списка пользовательского класса в список object
, так как в .NET все происходит от object
, он должен работать.
В основном то, что я хотел бы ожидать некоторый синтаксис, чтобы сказать компилятору, что T2 (object
) является базой для T1 (MyClass
), так что-то вроде:
public static List<T2> ConvertList<T1, T2>(List<T1> param) where T2: base of T1
(... где T2: основание T1)
Используйте 'где T2: T1'. – Abion47
@ Abion47 спасибо за показ направления, но я думаю, вы хотели сказать 'где T1: T2' –
Возможно. Ваша формулировка немного запутанна в отношении того, в каком направлении вы хотели ее уйти. – Abion47