Generics C#

using System;
    public class Test{
        public static void Main(){
            Z<int>.Nested<double> obj= new Z<int>.Nested<double>();
            obj.MethodA(10, 12.34);
        }
    }
    public class Z<T> {
        public void MethodA(T arg) {
        }
        public class Nested<S> {
            public void MethodA(T arg1, S arg2) {
                Console.WriteLine("arg1: {0}", arg1.GetType().ToString());
                Console.WriteLine("arg2: {0}", arg2.GetType().ToString());
            }
        }
    }