XPRBexprContext Class
An XPRBexprContext allows you to easily dispose of intermediate expression objects created while constructing your model. Once an XPRBexprContext has been created, every expression created by that thread will be linked to the context and will be disposed when the XPRBexprContext is disposed.

Namespace: BCL
Assembly: xprbdn (in xprbdn.dll) Version: 37.1.1.0

The XPRBexprContext type exposes the following members.

Name | Description | |
---|---|---|
![]() |
XPRBexprContext |
Create a new expression context. Any expressions created on this thread from this point onwards will be added to this context, until the context is disposed. If the thread already has an expression context, new expressions will continue to be added to the old context & the new context will not be used.
|

Name | Description | |
---|---|---|
![]() |
Dispose |
Free all expressions that are associated with this context.
|
![]() |
Dispose(Boolean) |
Releases the unmanaged resources used by the
XPRBexprContext and optionally releases the managed resources
|
![]() |
Equals | (Inherited from Object.) |
![]() |
Finalize | (Overrides ObjectFinalize.) |
![]() |
GetHashCode |
Serves as a hash function for a particular type.
(Inherited from Object.) |
![]() |
GetType |
Gets the type of the current instance.
(Inherited from Object.) |
![]() |
MemberwiseClone |
Creates a shallow copy of the current
Object.
(Inherited from Object.) |
![]() |
ToString |
Returns a string that represents the current object.
(Inherited from Object.) |

XPRBexpr objects can be created explicitly or by operator overloading, and once created will normally be retained in memory until .NET decides to garbage collect them. As this can waste significant memory, the XPRBexprContext provides a way to easily dispose of your expressions once they are no longer required, without needing to keep a reference to every individual XPRBexpr.

XPRBprob p = new XPRBprob("Chess"); XPRBvar xs = p.newVar("xs"); XPRBvar xl = p.newVar("xl"); using (XPRBexprContext ctx=new XPRBexprContext()) { XPRBexpr woodRequired = xs + 3.0*xl; p.newCtr("wood", woodRequired<=200.0 ); XPRBexpr timeRequired = 3.0*cs + 2.0*xl; p.newCtr("mc_time", timeRequired<400.0); }
