With statement become like C#'s using?
Bosak
bosak at gmail.com
Mon Aug 5 05:40:24 PDT 2013
In C# there is this using construct:
using(Bitmap image = this.OpenImage("filename.bmp")) {
image.Name = "foo";
//use image like image.sth
}
which is translated to:
{
Bitmap image = this.OpenImage("filename.bmp");
try {
image.Name = "foo";
//use image like image.sth
}
finally {
IDisposable obj = image as IDisposable;
if(obj != null)
obj.Dispose();
}
}
I know that the with statement is different, but it can be
improved so that you can declare things in it like an using
statement:
with(Bitmap image = open("filename.bmp")) {
name = "foo";
//no need to specify image.sth
}
or even a more implicit one:
with(open("filename.bmp")) {
//ditto
}
And both of the above to be translated to:
{
Bitmap temp = expression;
//use bitmap
delete temp; // Call destructor/finallizer of the object
//I'm not sure if delete was the proper way to call a
destructor in D
}
And I hope you got the point. Tell me what you think.
More information about the Digitalmars-d
mailing list