и P2. Р2 используется в Р1.
в Р2 есть:
namespace Р2
{
public class ClassA
{
//prop
}
public static class ClassB
{
public static List<T> ReturnList<T>(arg) where T : ClassA
{
var result = new List<T>();
//что тут нужно написать правильного, чтобы заполнить result?
return result;
}
}
}
а в Р1 реализация такая:
namespace Р1
{
public class ClassC : Р2.ClassA
{
//prop
}
public class Program
{
public static void Main()
{
var list = Р2.ClassB.ReturnList<ClassC>(arg);
}
}
}
В чем проблема?
уже разобрался сам) нужно было всего лишь написать так - where T : ClassA, new()
Ты в курсе, что скорость такого кода оставляет делать лучшего?
Можно подробности, плиз
where T : new() работает через, простигосподи, активатор.
Я правда не знаю что такое активатор Но а как ещё решить тогда мою задачу?
https://docs.microsoft.com/ru-ru/dotnet/api/system.activator.createinstance?view=net-5.0 В общем, рефлексии. Если ты в коде часто будешь писать new T(), то это будет работать медленнее, чем могло бы. Насколько это критично — решать тебе
Обсуждают сегодня