tags:

views:

118

answers:

4

I am coding in VB.NET.

Currently, I am enclosing object initialization and usage in a Try/Catch block and then tear it down (dispose, close, set to nothing) in the Finally block. The problem is, a C# 'using' block is so easy to use and would clean things up in my code.

Is there a VB.NET equivalent? Or is my Finally block tear-down solution the only way?

+3  A: 

http://msdn.microsoft.com/en-us/library/htd05whh(VS.80).aspx

Public Sub setbigbold(ByVal c As Control)
    Using nf As New System.Drawing.Font("Arial", 12.0F, _
        System.Drawing.FontStyle.Bold)

        c.Font = nf
        c.Text = "This is 12-point Arial bold"
    End Using
End Sub
Alexander
This definitely needs a better example. This is a guaranteed ObjectDisposedException.
Hans Passant
Very thorough. Thank you.
crackedcornjimmy
ObjectDisposedException?
crackedcornjimmy
@crackedcornjimmy: Yes. The font is assigned to a property in the control, and then it's disposed. When the control tries to use the font, the actual GDI font is gone.
Guffa
@Guffa: So the Font property doesn't make a copy of the font and dispose of its old one? How is one supposed to keep track of who owns control fonts?
supercat
+7  A: 

It's the same, it's just:

Using conn As New SqlConnection
    ....
End Using
ho1
Thank you very much. Very concise.
crackedcornjimmy
+2  A: 

Er, Using ... End Using

See MSDN for more info

Rowland Shaw
A: 

Here is another StackOverflow question that deals with the exact same issue. If I'm not mistaken it's used in a very similar, if not the exact same, way as in C# though.

Hope this helps!

AmbiguousX