using System;
public class TTest1 {
public void Test() {
Console.WriteLine("TTest1.Test");
}
public class TTest2: TTest1 {
Console.WriteLine("TTest2.Test");
public class TTest<T> where T: TTest1, new() {
T FTest;
public void TestIt() {
FTest = new T();
FTest.Test();
public class Program
{
public static void Main()
TTest<TTest2> TestObj = new TTest<TTest2>();
TestObj.TestIt();