using System;
using System.Collections;
namespace P7_10
{
    class BaseC
    {
        int baseInt;
        string baseStr;
        public void Show()
        {
            Console.WriteLine("еshow");
        }
    }
    //Լ
    class GenericClass3<T> where T : BaseC
    {
        T ob1;
        public GenericClass3(T ob_demo)
        {
            ob1 = ob_demo;
        }
        public void Show()
        {
            Console.WriteLine("Լеshow");
            ob1.Show();
        }
    }
    //new()캯Լ
    class GenericClass4<T> where T : new()
    {
        public T ob1;
        public GenericClass4()
        {
            ob1 = new T();
        }
    }
    class Program
    {
        static void Main()
        {
            BaseC basedemo = new BaseC();
            GenericClass3<BaseC> demo3 = new GenericClass3<BaseC>(basedemo);
            //demo3 
            GenericClass4<BaseC> demo4 = new GenericClass4<BaseC>();
            demo3.Show();
            demo4.ob1.Show();
            Console.ReadLine();
        }
    }
}
