5

我想测试 DOORs 对象的枚举属性的值。如何才能做到这一点?我在哪里可以找到描述此类基本功能的 DXL 文档?

if (o."Progress" == 0) // This does NOT work
{
  // do something
}
4

4 回答 4

4

因此,在两周和到期的赏金之后,我终于成功了。Enum-Attributes 可以根据需要分配给 int 或 string 变量。但是您必须分配给一个变量才能执行这样的转换。当像我的示例中那样仅进行比较时,它不会被强制转换。所以解决方案来了:

int tmp = o."Progress"
if (tmp == 0)
{
  // do something
}

tmp是一个字符串时,可以与枚举文字进行比较。

那很简单。不是吗?在这里,我终于找到了关于 DXL 的一切你需要知道的手册。

于 2011-09-16T09:35:14.880 回答
2

你也可以做

if(o."Progress" "" == "0")
{
   //do something
}

这会将属性值转换为字符串并将其与字符串进行比较"0"

于 2012-08-29T18:54:19.827 回答
2

对于多值枚举,最好的方法是if (isMember(o."Progress", "0")) {. 单枚举变量和多枚举变量的可能枚举被认为是字符串,因此史蒂夫的解决方案是单枚举的最佳 dxl 方式。

于 2017-06-02T03:16:10.770 回答
1

如果您谈论的是可从“编辑类型”框中分配的“相关编号”,那么您需要首先获取枚举字符串在枚举中的位置,然后检索 EnumName[k].value .

我不是 DXL 方面的专家,因此找到我所知道的索引的唯一方法是循环遍历1 : EnumName.size,当您获得与枚举字符串匹配时,使用该循环索引值来检索枚举“相关号码。”

于 2017-01-31T19:52:58.713 回答