如何将枚举设置为null

我有一个枚举

string name;

public enum Color

{

Red,

Green,

Yellow

}

如何在加载时将其设置为NULL。

name = "";

Color color = null; //error

编辑:我不好,我没有正确解释。但是所有与nullable有关的答案都是完美的。我的情况是,如果我在类中具有其他元素(如名称等)的枚举值,则该怎么做。在页面加载时,我初始化该类并尝试将值默认为null。这是场景(代码在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; //???

}

}

}

然后使用下面的建议,我更改了上面的代码以使其与get和set方法一起使用。我只需要添加“?” 在声明私有枚举变量期间在EnumTest类中以及在get /

set方法中:

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; }

}

}

感谢所有可爱的建议。

回答:

您可以使用“?” 可空类型的运算符。

public Color? myColor = null;

或对不能为空的枚举使用标准做法,方法是将枚举中的FIRST值(aka 0)作为默认值。例如,在颜色为无的情况下。

public Color myColor = Color.None;

以上是 如何将枚举设置为null 的全部内容, 来源链接: utcz.com/qa/435335.html

回到顶部