fork download
  1. using System;
  2.  
  3. public class Test
  4. {
  5. class Base
  6. {
  7. }
  8.  
  9. class ClassA : Base
  10. {
  11. }
  12.  
  13. class ClassB : Base
  14. {
  15. }
  16.  
  17. class OtherBase
  18. {
  19. }
  20.  
  21. class ClassC : OtherBase
  22. {
  23. }
  24.  
  25. static void Foo<T>()
  26. where T : Base
  27. {
  28. var type = typeof(T);
  29. Console.WriteLine(type.Name);
  30. }
  31.  
  32. static void Foo<T1, T2>()
  33. where T1 : Base
  34. where T2 : Base
  35. {
  36. Foo<T1>();
  37. Foo<T2>();
  38. }
  39.  
  40. public static void Main()
  41. {
  42. Foo<ClassA>();
  43. Foo<ClassA, ClassB>();
  44. // Foo<ClassC>(); // gdy odkomentujemy nie skompiluje się ze względu na generic constraint
  45. }
  46. }
Success #stdin #stdout 0.01s 131520KB
stdin
Standard input is empty
stdout
ClassA
ClassA
ClassB