我有一个枚举
string name;
public enum Color
{
Red,
Green,
Yellow
}
如何在加载时将其设置为NULL。
name = "";
Color color = null; //error
编辑:我的错,我没有正确地解释它。但是所有与nullable相关的答案都是完美的。我的情况是,如果我在一个类中为枚举设置了get/set和其他元素,比如name,等等。在页面加载时,我初始化了这个类,并尝试将值默认为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; }
}
}
感谢所有这些可爱的建议。
发布于 2010-12-03 00:23:54
您可以使用"?“运算符,用于可空类型。
public Color? myColor = null;
或者对不能为空的枚举使用标准实践,将枚举中的第一个值(也称为0)作为默认值。例如在颜色为None的情况下。
public Color myColor = Color.None;
发布于 2010-12-03 00:24:28
如果这是C#,它就不能工作:枚举是值类型,不能是null
。
正常的选项是添加一个None
成员:
public enum Color
{
None,
Red,
Green,
Yellow
}
Color color = Color.None;
使用Nullable
的...or
Color? color = null;
发布于 2010-12-03 00:23:17
使您的变量可为nullable。像这样:
Color? color = null;
或
Nullable<Color> color = null;
https://stackoverflow.com/questions/4337193
复制相似问题