


# HandleResult class













## Constructors

[HandleResult](../zircon/HandleResult/HandleResult.md) (int status, [[Handle](../zircon/Handle-class.md) _handle])

  _const_ 


## Properties

##### [handle](../zircon/HandleResult/handle.md) &#8594; [Handle](../zircon/Handle-class.md)



  
_<span class="feature read-only">read-only</span>_



##### [hashCode](../zircon/HandleResult/hashCode.md) &#8594; int



The hash code for this object.  
_<span class="feature read-only">read-only</span><span class="feature inherited">inherited</span>_



##### [runtimeType](../zircon/HandleResult/runtimeType.md) &#8594; Type



A representation of the runtime type of the object.  
_<span class="feature read-only">read-only</span><span class="feature inherited">inherited</span>_



##### [status](../zircon/HandleResult/status.md) &#8594; int



  
_<span class="feature final">final</span><span class="feature inherited">inherited</span>_





## Methods

##### [noSuchMethod](../zircon/HandleResult/noSuchMethod.md)(Invocation invocation) dynamic



Invoked when a non-existent method or property is accessed.  
_<span class="feature inherited">inherited</span>_



##### [toString](../zircon/HandleResult/toString.md)() String



A string representation of this object.  
_<span class="feature override">override</span>_





## Operators

##### [operator ==](../zircon/HandleResult/operator_equals.md)(Object other) bool



The equality operator.  
_<span class="feature inherited">inherited</span>_















