2015-04-23 114 views
2

我可以很容易地声明一个枚举和一个集合。
但有时我只想使用枚举的一部分,我希望编译器检查子枚举中的值及其子集是否在边界内。声明一个类型作为一个集合的子集

type 
    TDay = (mon, tue, wen, thu, fri, sat, sun); 
    TWeekday = (mon..fri); //not allowed; 

    TDays = set of TDay; 
    TWeekdays = set of TDay[mon..fri]; //not allowed 

我可以声明TWeekdayTWeekdays作为TDay的衍生物,如果是的话,怎么样?

有趣的是,谷歌在这个问题上没有产生任何东西(对我来说),只是普通的老套。

+0

'TWeekday = mon..fri','TWeekdays = TWeekday' set? – TLama

+0

是的,这是诀窍,我知道这是可能的,但不记得正确的语法。 – Johan

回答

7
type 
    TDay = (mon, tue, wen, thu, fri, sat, sun); 
    TWeekday = mon..fri; // A subrange of TDay 

    TDays = set of TDay; 
    TWeekdays = set of TWeekDay; 

更多Subrange TypesSets

相关问题