1

DXL では、変数を参照として関数に渡した後、変数が null 値を保持しているかどうかを確認するにはどうすればよいですか? を使用する通常の方法(null variableName)は、適切に機能していないようです。

void valueBasedNullTest(Buffer b) {
  print "Value based: "
  print "null b => "
  if (null b) {
    print "true"
  } else {
    print "false"
  }
  print "\n"
}

void referenceBasedNullTest(Buffer &b) {
  print "Reference based: "
  print "null b => "
  if (null b) {
    print "true"
  } else {
    print "false"
  }
  print "\n"
}

Buffer someBuffer = null
valueBasedNullTest(someBuffer)
referenceBasedNullTest(someBuffer)

結果:

Value based: null b => true
Reference based: null b => false

現在、Rational DOORS 9.2 を実行しています。

なぜこれが起こっているのですか?どうすれば回避できますか?

4

3 に答える 3

0

あなたが話している問題はわかりますが、非常に奇妙に思えます。私がそれを処理する方法は次のとおりです。

void referenceBasedNullTest(Buffer &b) {
  print "Reference based: "
  print "null b => "
  if (length(b) <=0) {
    print "true"
  } else {
    print "false"
  }
  print "\n"
}

Buffer someBuffer = create
//valueBasedNullTest(someBuffer)
referenceBasedNullTest(someBuffer)
delete(someBuffer)

これにより、バッファーが存在することが確認されますが、バッファーに何かが含まれているかどうかをテストすることもできます。使用終了時にはBufferを削除することを忘れないでください。

于 2015-08-05T14:40:45.550 に答える