How to set enum to null

c#, enums, null, nullable

Solution

You can either use the "?" operator for a nullable type.

public Color? myColor = null;

Or use the standard practice for enums that cannot be null by having the FIRST value in the enum (aka 0) be the default value. For example in a case of color None.

public Color myColor = Color.None;

Problem

I have an enum ``` string name; public enum Color { Red, Green, Yellow } ``` How to set it to NULL on load. ``` name = ""; Color color = null; //error ``` Edited: My bad, I didn't explain it properly. But all the answers related to nullable is perfect. My situation is What if, I have get/set for the enum in a class with other elements like name, etc. On page load I initiallize the class and try to default the values to null. Here is the scenario (Code is in C#): ``` namespace Testing { public enum ValidColors { Red, Green, Yellow } public class EnumTest { private string name; private ValidColors myColor; public string Name { get { return name; } set { name = value; } } public ValidColors MyColor { get { return myColor; } set { myColor = value; } } } public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { EnumTest oEnumTest = new EnumTest(); oEnumTest.Name = ""; oEnumTest.MyColor = null; //??? } } } ``` Then using the suggestions below I changed the above code to make it work with get and set methods. I just need to add "?" in EnumTest class during declaration of private enum variable and in get/set method: ``` public class EnumTest { private string name; private ValidColors? myColor; //added "?" here in declaration and in get/set method public string Name { get { return name; } set { name = value; } } public ValidColors? MyColor { get { return myColor; } set { myColor = value; } } } ``` Thanks all for the lovely suggestions.

Original source

Related problems