using System;
public class Test
{
public static void Main()
{
Console.WriteLine(A<Test>.notSharedObject);
Console.WriteLine(A<String>.notSharedObject);
Console.WriteLine(Object.ReferenceEquals(A<Test>.notSharedObject, A<Test>.notSharedObject));
Console.WriteLine(Object.ReferenceEquals(A<String>.notSharedObject, A<String>.notSharedObject));
Console.WriteLine(Object.ReferenceEquals(A<Test>.notSharedObject, A<String>.notSharedObject));
}
}
public class A<T>
{
public static string notSharedObject = null;
static A()
{
notSharedObject = typeof(T).FullName;
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJICAgQ29uc29sZS5Xcml0ZUxpbmUoQTxUZXN0Pi5ub3RTaGFyZWRPYmplY3QpOwoJICAgQ29uc29sZS5Xcml0ZUxpbmUoQTxTdHJpbmc+Lm5vdFNoYXJlZE9iamVjdCk7CgkgICBDb25zb2xlLldyaXRlTGluZShPYmplY3QuUmVmZXJlbmNlRXF1YWxzKEE8VGVzdD4ubm90U2hhcmVkT2JqZWN0LCBBPFRlc3Q+Lm5vdFNoYXJlZE9iamVjdCkpOwoJICAgQ29uc29sZS5Xcml0ZUxpbmUoT2JqZWN0LlJlZmVyZW5jZUVxdWFscyhBPFN0cmluZz4ubm90U2hhcmVkT2JqZWN0LCBBPFN0cmluZz4ubm90U2hhcmVkT2JqZWN0KSk7CgkgICBDb25zb2xlLldyaXRlTGluZShPYmplY3QuUmVmZXJlbmNlRXF1YWxzKEE8VGVzdD4ubm90U2hhcmVkT2JqZWN0LCBBPFN0cmluZz4ubm90U2hhcmVkT2JqZWN0KSk7Cgl9Cn0KCnB1YmxpYyBjbGFzcyBBPFQ+CnsKCXB1YmxpYyBzdGF0aWMgc3RyaW5nIG5vdFNoYXJlZE9iamVjdCA9IG51bGw7CgkKCXN0YXRpYyBBKCkKCXsKCQlub3RTaGFyZWRPYmplY3QgPSB0eXBlb2YoVCkuRnVsbE5hbWU7Cgl9Cn0=