【发布时间】:2011-05-19 05:48:12
【问题描述】:
我有一个枚举
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 方法一起使用。我只需要添加“?”在声明私有枚举变量期间和在 get/set 方法中的 EnumTest 类中:
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; }
}
}
感谢所有可爱的建议。
【问题讨论】: