using System.Collections.Generic; public class ClassA {}; public class ClassB {}; public struct GenStruct { public int field1; public T field2; public byte field3; public long field4; } public class Gen { public static T getDefault () { return default (T); } public static GenStruct getDefaultStruct () { return default (GenStruct); } } public class main { public static bool isDefaultStruct (GenStruct gs) { EqualityComparer eq = EqualityComparer.Default; return gs.field1 == 0 && eq.Equals (gs.field2, default (T)) && gs.field3 == 0 && gs.field4 == 0; } public static int Main () { if (Gen.getDefault () != null) return 1; if (Gen.getDefault () != null) return 1; if (Gen.getDefault () != 0) return 1; if (!isDefaultStruct (Gen.getDefaultStruct ())) return 1; if (!isDefaultStruct (Gen.getDefaultStruct ())) return 1; if (!isDefaultStruct (Gen.getDefaultStruct ())) return 1; return 0; } }