public static Test<T> t = new Test<T>();
public static int i = 10;
Console.WriteLine(typeof(T));
Console.WriteLine("Built a Test instance : " + typeof(T));
private static void InvokeWrite<T>()
Type genericType = typeof(A<>).MakeGenericType(new Type[]{typeof(T)});
object o = Activator.CreateInstance(genericType);
genericType.GetMethod(nameof(A<object>.Write)).Invoke(o, null);
private static void Set<T>(int i)
Type genericType = typeof(A<>).MakeGenericType(new Type[]{typeof(T)});
object o = Activator.CreateInstance(genericType);
genericType.GetField(nameof(A<object>.i)).SetValue(o, i);
private static void Get<T>()
Type genericType = typeof(A<>).MakeGenericType(new Type[]{typeof(T)});
object o = Activator.CreateInstance(genericType);
Console.WriteLine(genericType.GetField(nameof(A<object>.i)).GetValue(o).ToString());
public static void Main()