struct S { public S (double d) { } } enum E { } struct Test { static void Verify_1 (out Test a, out Test b) { a = b = new Test (); } static void Verify_2 (ref S a, ref S b) { a = b = new S (4.31); } static void Verify_3 (out E a, out E b) { a = b = new E (); } public static int Main () { Test t1, t2; Verify_1 (out t1, out t2); S s1, s2; Verify_2 (ref s1, ref s2); E e1, e2; Verify_3 (out e1, out e2); return 0; } }