using System;
public abstract class cl<T> where T:cl<T>
{
public cl(){}
public abstract void test();
public void make()
this.test();
}
public class cl2<T>:cl<cl2<int>>
public cl2(){}
public override void test()
Console.WriteLine("test1");
public class Program
public static void Main()
var a=new cl2<int>();
a.make();