fork download
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace AddingReversedNumbers
  5. {
  6. public class MyDerivedClass : MyBaseClass, IMyInterface
  7. {
  8. public int InterfaceProperty { get; set; }
  9. public int DerivedClassProperty { get; set; }
  10. public List<int> DerivedClassList { get; set; }
  11. }
  12.  
  13. public class MyBaseClass
  14. {
  15. public int BaseClassProperty { get; set; }
  16. }
  17.  
  18. public interface IMyInterface
  19. {
  20. int InterfaceProperty { get; set; }
  21. }
  22.  
  23.  
  24. class Program
  25. {
  26. static void Main()
  27. {
  28. //// This code works just fine.
  29. //var derivedList = new List<MyDerivedClass>();
  30. //derivedList.Add(new MyDerivedClass { BaseClassProperty = 10, DerivedClassProperty = 20, InterfaceProperty = 30 });
  31. //derivedList.Add(new MyDerivedClass { BaseClassProperty = 20, DerivedClassProperty = 40, InterfaceProperty = 60 });
  32. //var baseList = derivedList.ConvertAll(x => (MyBaseClass)x);
  33.  
  34. // This code breaks when ConvertAll() is called.
  35. var baseList = new List<MyBaseClass>();
  36. baseList.Add(new MyBaseClass{ BaseClassProperty = 10 });
  37. baseList.Add(new MyBaseClass{ BaseClassProperty = 20 });
  38. var derivedList = baseList.ConvertAll(x => (MyDerivedClass)x);
  39. }
  40. }
  41. }
Runtime error #stdin #stdout 0.03s 39560KB
stdin
Standard input is empty
stdout
Standard output is empty