и 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(), то это будет работать медленнее, чем могло бы. Насколько это критично — решать тебе
Обсуждают сегодня