Dispose Pattern - Language Constructs

Language Constructs

To make the dispose pattern less verbose, several languages have some kind of built-in support for it:

The C# language features the using statement that automatically calls the Dispose method on an object that implements the IDisposable interface:

using (Resource resource = GetResource) { // Perform actions with the resource. ... }

which is equal to:

Resource resource = GetResource try { // Perform actions with the resource. ... } finally { resource.Finalize; }

Similarly, the Python language has a with statement can be used to similar effect:

with get_resource as resource: # Perform actions with the resource. ...

The Java language introduced a new syntax called try-with-resources in Java version 7. It can be used on objects that implement the AutoCloseable interface (that defines method close):

try ( OutputStream x = new OutputStream(...) ){ //do something with x } catch(IOException ex){ //handle exception } //The resource x is automatically closed

Read more about this topic:  Dispose Pattern

Famous quotes containing the words language and/or constructs:

    We find that the child who does not yet have language at his command, the child under two and a half, will be able to cooperate with our education if we go easy on the “blocking” techniques, the outright prohibitions, the “no’s” and go heavy on “substitution” techniques, that is, the redirection or certain impulses and the offering of substitute satisfactions.
    Selma H. Fraiberg (20th century)

    To me the “female principle” is, or at least historically has been, basically anarchic. It values order without constraint, rule by custom not by force. It has been the male who enforces order, who constructs power structures, who makes, enforces, and breaks laws.
    Ursula K. Le Guin (b. 1929)