fork download
  1. using System;
  2.  
  3. public class Test
  4. {
  5. public static void Main()
  6. {
  7. var intClass = MyClass<int>.Create(55);
  8. var charClass = MyClass<char>.Create(234, intClass);
  9. Console.WriteLine("Parent id: " + charClass.ParentId);
  10. }
  11. }
  12.  
  13. public class MyClass<T>
  14. {
  15. public int Id { get; private set; }
  16. public int? ParentId { get; private set; }
  17.  
  18. public static MyClass<T> Create(int id)
  19. {
  20. return Create<object>(id, null);
  21. }
  22.  
  23. public static MyClass<T> Create<T2>(int id, MyClass<T2> parent = null)
  24. {
  25. var current = new MyClass<T>();
  26. current.Id = id;
  27. current.ParentId = parent?.Id;
  28. return current;
  29. }
  30.  
  31. private MyClass()
  32. {
  33. }
  34.  
  35. // ... Additional stuff
  36. }
Success #stdin #stdout 0.02s 16004KB
stdin
Standard input is empty
stdout
Parent id: 55