2017-02-13 5 views
0

さまざまなif/elseセクションを持つDXLマクロがあり、特定の文字列が特定の条件でのみ作成され、他の時間では作成されないと仮定します。どのように私は上記の文字列を使用しようとする前に存在をテストすることができますか?私はstring foo = "notset"を初期化し、値が変更されたかどうかを確認するためにテストすることによって回避策をその場しのぎできRational DOORS DXL:ローカル文字列変数の存在を確認できますか?

if (exist string foo) { 
    do_something 
    } else { 
    do_some_other_thing 
} 

の同等を探していますが、必要でない場合は、文字列変数を作成する必要がないものを好むだろう。

これはローカル文字列であり、属性には見つからない(または見つからない)ことに注意してください。

答えて

0

if (null string_variable) {を試しましたか?文字列が宣言されていても値が与えられていない場合、これはtrueと評価されます。また、文字列がまだ宣言されていない場合、実行エラーが発生することがあります。

0

DXLには有効範囲があります。このようなコードは動作しません。

if (cond) { 
    string s = "Hello"; 
} else { 
    // something different 
} 
if (s == ...) print "..." // parse time error, s not defined 

あなたはこのようなものを使用する必要があります:

string s = null; 
if (cond1) { 
    s = "Hallo"; 
} else { 
    // something different 
} 
if (!null s) print "..."; 

私はあなたがDXLコード内の変数が宣言されているかどうかをチェックする話ではないし、期待しています。これは不可能です。なぜなら、宣言されていない変数は、DXLが実行される前に解析時間エラーを生成するためです(自動デコードがオフになっています)。そして、あなたは自動宣言に決して頼るべきではありません。

関連する問題