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。

您不能严格键入变量,然后使用 getter 和 setter 来保护类型

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 回答