using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
Console.WriteLine(typeof(int).IsAssignableTo(typeof(IEquatable<>)));
Console.WriteLine(nameof(Foo1<int>));
Console.WriteLine("nach await t;");
StringBuilder sb = new();
Console.WriteLine(sb.ToString());
public interface IWrapper
List<IFoo> Foos {get;set;}
public class Wrapper1 : IWrapper
public List<IFoo> Foos {get;set;}
public class Wrapper2 : IWrapper
public List<IFoo> Foos {get;set;}
public interface IFoo<T> : IFoo
public class Foo1<T> : IFoo<T>
public class Foo2<T> : IFoo<T>