我想测试 DOORs 对象的枚举属性的值。如何才能做到这一点?我在哪里可以找到描述此类基本功能的 DXL 文档?
if (o."Progress" == 0) // This does NOT work
{
// do something
}
我想测试 DOORs 对象的枚举属性的值。如何才能做到这一点?我在哪里可以找到描述此类基本功能的 DXL 文档?
if (o."Progress" == 0) // This does NOT work
{
// do something
}
因此,在两周和到期的赏金之后,我终于成功了。Enum-Attributes 可以根据需要分配给 int 或 string 变量。但是您必须分配给一个变量才能执行这样的转换。当像我的示例中那样仅进行比较时,它不会被强制转换。所以解决方案来了:
int tmp = o."Progress"
if (tmp == 0)
{
// do something
}
当tmp
是一个字符串时,可以与枚举文字进行比较。
那很简单。不是吗?在这里,我终于找到了关于 DXL 的一切你需要知道的手册。
你也可以做
if(o."Progress" "" == "0")
{
//do something
}
这会将属性值转换为字符串并将其与字符串进行比较"0"
对于多值枚举,最好的方法是if (isMember(o."Progress", "0")) {
. 单枚举变量和多枚举变量的可能枚举被认为是字符串,因此史蒂夫的解决方案是单枚举的最佳 dxl 方式。
如果您谈论的是可从“编辑类型”框中分配的“相关编号”,那么您需要首先获取枚举字符串在枚举中的位置,然后检索 EnumName[k].value
.
我不是 DXL 方面的专家,因此找到我所知道的索引的唯一方法是循环遍历1 : EnumName.size
,当您获得与枚举字符串匹配时,使用该循环索引值来检索枚举“相关号码。”