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:

    I am both a public and a private school boy myself, having always changed schools just as the class in English in the new school was taking up Silas Marner, with the result that it was the only book in the English language that I knew until I was eighteen—but, boy, did I know Silas Marner!
    Robert Benchley (1889–1945)

    Psychology has nothing to say about what women are really like, what they need and what they want, essentially because psychology does not know.... this failure is not limited to women; rather, the kind of psychology that has addressed itself to how people act and who they are has failed to understand in the first place why people act the way they do, and certainly failed to understand what might make them act differently.
    Naomi Weisstein, U.S. psychologist, feminist, and author. Psychology Constructs the Female (1969)