using System; using System.Linq.Expressions; struct S where T : struct { public static int Test () { Expression> e = (T? o) => o == null; if (!e.Compile ().Invoke (null)) return 1; if (e.Compile ().Invoke (default (T))) return 2; Console.WriteLine ("OK"); return 0; } } class C { public static int Main() { return S.Test (); } }