using System; namespace Test { public enum Enum { One, Two } class CompilerTest { public static int Main () { ThisWorksFine (); ThisDoesNotWork (); return 0; } protected static int DoSomething (string s, T t, ref T t2) { Console.WriteLine ("s={0}", s); Console.WriteLine ("t={0}", t.ToString ()); Console.WriteLine ("t2={0}", t2.ToString ()); t2 = default (T); return 0; } public static void ThisDoesNotWork () { Enum? e = Enum.One; DoSomething ("abc", Enum.Two, ref e); } public static void ThisWorksFine () { Enum e = Enum.Two; DoSomething ("abc", Enum.Two, ref e); Console.WriteLine ("e={0}", e.ToString ()); } } }