我有一个这样的课程:
public class Meta
{
public string Height { get; set; }
}
我想在课堂上添加一些内容,但我不知道该怎么做。我想要的是高度只能设置为“高”或“短”。未来可能会有更多的事情,但现在只有这两者之间的选择。另外我希望它在构造函数中默认为“Short”。我想我需要使用枚举,但我不知道如何 这样做。
有人可以解释一下。我非常感谢。
答案 0 :(得分:9)
是的,您可以使用枚举:
public enum Height
{
Short = 0,
Tall = 1;
}
public class Meta
{
public Height Height { get; private set; }
public Meta(Height height)
{
if (!Enum.IsDefined(typeof(Height), height))
{
throw new ArgumentOutOfRangeException("No such height");
}
this.Height = height;
}
}
(如果您希望该属性可写,则需要将验证放在setter中。)
您需要验证,因为枚举实际上只是不同类型的整数值。例如,如果没有验证,这将很好地进行:
new Meta((Height) 1000);
但对任何来电者来说显然毫无意义。
答案 1 :(得分:4)
您可以使用可能的值定义enum:
public enum HeightTypes
{
Tall,
Short
}
然后将其用作Height
属性的类型:
public class Meta
{
public Meta()
{
// Set the Height property to Short by default in the constructor
Height = HeightTypes.Short;
}
public HeightTypes Height { get; set; }
}
现在,当你有一个Meta类的实例时,你可以将它的Height属性设置为Tall或Short:
var meta = new Meta();
meta.Height = HeightTypes.Tall;
答案 2 :(得分:2)
定义枚举。
public Enum Heights
{
Tall,
Short
}
然后将您的属性定义为enum类型
public Heights Height { get; set; }
请参阅http://msdn.microsoft.com/en-us/library/system.enum.aspx了解详情