2

私はこのようなクラスを持っています。

public class Doc {
  public function Doc():void {}

  public var myVar:Boolean;
}

myVarが保持する値がデフォルトでfalseであるか、誰かがfalseを割り当てているかを知るにはどうすればよいですか?!?未定義の状態はありませんか?どうすればそのようなことを達成できますか?

4

2 に答える 2

5

myVarをプロパティにし、別の変数を使用して、明示的に設定されているかどうかを確認します。

public class Doc 
{
  public function Doc():void {}

  private var _myVar:Boolean;
  private var myVarSetExplicitly:Boolean = false;
  public function get myVar():Boolean
  {
    return _myVar;
  }
  public function set myVar(value:Boolean):void
  {
    myVarSetExplicitly = true;
    _myVar = value;
  }
}
于 2009-10-11T12:38:40.413 に答える
0

ブール値を使用することはできません。デフォルトはfalseで、false===falseです。

変数を厳密に入力してから、ゲッターとセッターを使用して型を保護することはできませんでした

public class Doc {
  private var _myVar;

  public function set myVar(value:Boolean){
    _myVar = value;
  }

  public function get myVar(){
    return _myVar;
  }
}

これで、設定されていない場合、myVarは=== nullになり、その後はブール値にのみ設定できるようになります。

しかし、それは少しハッキーな感じがします、そしてなぜあなたは違いを言う必要があるのだろうかと思います。

于 2009-10-11T12:39:57.853 に答える