如何使用3个选项创建自定义数据类型。
type pageSize
可能的价值......
Small
Medium
Large
我希望能够举例说我的对象被称为页面说...
page.size = pageSize.Small
直到现在我一直在使用字符串,但觉得这不理想。
答案 0 :(得分:4)
您可以将enumerations用于此目的:
public enum PageSize {
Small, Medium, Large
}
然后,您可以将page.size
声明为PageSize
并使用您想象的内容:
page.size = pageSize.Small
如果只是关于那些选项(或者可能是关于其他选项的可数列表),这很好。但是,实际的物理尺寸转换必须发生在其他地方 - 而其他地方总是必须与枚举保持同步。特别是对于页面大小,我可能会选择不同的内容:
public class PageSize {
public double Width { get; private set; }
public double Height { get; private set; }
public PageSize(double width, double height) {
Width = width;
Height = height;
}
public static PageSize A4 = new PageSize(210, 297);
public static PageSize Letter = new PageSize(215.9, 279.4);
public static PageSize Small = new PageSize(148, 210);
public static PageSize Medium = A4;
public static PageSize Large = new PageSize(297, 420);
}
现在这是一个实际的数据类型,其中包含属性和一组与大小相对应的静态预定义值。这里的优点是您可以在同一个地方定义所有预定义的大小,而其他代码不需要关心Small
或Large
的含义,但只能使用测量值。
但缺点是,您没有获得所有预定义值的同样方便的方法。使用enum
即可
Enum.GetValues(typeof(PageSize))
并将其绑定到UI元素,例如一个ComboBox。对于类中的静态字段,您需要使用反射来做到这一点,这不是很好。