Generics C#

using System;
    using System.Collections;
    public class Test{
        public static void Main(){
           X obj=new X();
        }
    }
    public class Z {
        public void MethodA() {
            Console.WriteLine("Y::MethodA");
        }
    }
    public class Y: Z {
    }
    public class X where T1:T2 {
        public void MethodB(T1 arg) {
        }
    }