Interface IKnowledgeBinding
A writable binding that remembers whether the value it holds is known.
public interface IKnowledgeBinding : IBindingHandle
- Inherited Members
- Extension Methods
Remarks
Whether a value is known is a property of the value (IsIndeterminate), and a value read from a variable is bound to the variable's own cell. For an analysis that runs assignments, the cell is where the answer has to be kept: a variable that holds a value the analysis does not know is still assigned a known one later, and the other way around. A cell that is not known holds the value its type assumes in its place; see IndeterminateBindingHandle.
A cell is known unless it is told otherwise, so a session that runs code rather than analyzes it is unchanged by any of this. Writing through SetValue(ISymbolResolver, IRuntimeValue) states a known value; a write that may be of an unknown one has to say so (Store(IBindingHandle, ISymbolResolver, VBTypedValue)).
Properties
IsKnown
Whether the value held is known. When it is not, the value held is the one its type assumes.
bool IsKnown { get; }
Property Value
Methods
Forget()
Makes the value held not known, keeping it as the value assumed in its place.
void Forget()
Store(IRuntimeValue, bool)
Replaces the value held, and says whether the new value is known.
void Store(IRuntimeValue value, bool isKnown)
Parameters
valueIRuntimeValueThe new value, or the value assumed in place of one that is not known.
isKnownboolWhether
valueis known.