5

DOORsオブジェクトの列挙属性の値をテストしたいと思います。これはどのように行うことができますか?そして、このような基本的な機能を説明するDXLドキュメントはどこにありますか?

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

4 に答える 4

4

それで、2週間と期限切れの賞金の後で私はついにそれを作りました。列挙型-属性は、必要に応じて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")) {です。単一および複数の列挙型変数の可能な列挙は文字列と見なされるため、Steveのソリューションは単一の列挙に最適なdxlの方法です。

于 2017-06-02T03:16:10.770 に答える
1

[タイプの編集]ボックスから割り当て可能な「関連番号」について話している場合は、列挙内の列挙文字列の位置を取得することから始めて、を取得する必要があります EnumName[k].value

私はDXLの専門家ではないので、頭のてっぺんから知っているインデックスを見つける唯一の方法はループする1 : EnumName.sizeことです。列挙文字列と一致する場合は、そのループインデックス値を使用して列挙を取得します。 「関連番号」

于 2017-01-31T19:52:58.713 に答える