Advertisement
VirtualMaestro

Untitled

Feb 2nd, 2024
899
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.05 KB | None | 0 0
  1. public interface IExampleInterface<in TIn, out TOut>
  2.     {
  3.         public TOut MyMethod(TIn param);
  4.     }
  5.  
  6.     public class MyExampleInheritor : IExampleInterface<B, B>
  7.     {
  8.         public B MyMethod(B param)
  9.         {
  10.             Debug.LogWarning($"Param is {param}");
  11.             return (C)param;
  12.         }
  13.     }
  14.  
  15.     public class UseExample
  16.     {
  17.         public UseExample()
  18.         {
  19.             var inst = new MyExampleInheritor();
  20.             var result = (C) inst.MyMethod(new D());
  21.             Debug.LogWarning($"Return is {result}");
  22.  
  23.         }
  24.     }
  25.  
  26.     public class A
  27.     {
  28.         public override string ToString()
  29.         {
  30.             return $"class A";
  31.         }
  32.     }
  33.  
  34.     public class B : A
  35.     {
  36.         public override string ToString()
  37.         {
  38.             return $"class B";
  39.         }
  40.     }
  41.  
  42.     public class C : B
  43.     {
  44.         public override string ToString()
  45.         {
  46.             return $"class C";
  47.         }
  48.     }
  49.  
  50.     public class D : C
  51.     {
  52.         public override string ToString()
  53.         {
  54.             return $"class D";
  55.         }
  56.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement