Hi,
I see in many MS example code that looks like this
Public Sub Foo()
dim myCustomer as New Customer
...
myCustomer.Disp ose()
myCustomer = Nothing
End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case?
Since myCustomer is a private variable, once it goes out of scope at the next
line, the reference to the object should be released.
Thanks.
Hao 34 2963
Hao Jiang wrote:
Hi,
I see in many MS example code that looks like this
Public Sub Foo()
dim myCustomer as New Customer
...
myCustomer.Disp ose()
myCustomer = Nothing
End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case?
Since myCustomer is a private variable, once it goes out of scope at the next
line, the reference to the object should be released.
Thanks.
Hao
That is correct. Removing the reference is pointless in this case.
--
Göran Andersson
_____ http://www.guffa.com
"Hao Jiang" <Hao Ji***@discussio ns.microsoft.co mschrieb:
Public Sub Foo()
dim myCustomer as New Customer
...
myCustomer.Disp ose()
myCustomer = Nothing
End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case?
No, it actually isn't necessary for the reason you mentioned.
--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>
Hao Jiang,
As Göran & Herfried suggests setting myCustomer = Nothing is not needed for
the reason you give.
Instead of calling Dispose outright I would recommend using the new Using
statement in .NET 2.0 (VS 2005). The Using statement ensures that Dispose is
called even if one of the statements contained by the Using throws an
exception.
Public Sub Foo()
Using myCustomer as New Customer
...
End Using
End Sub
Which is basically the following in .NET 1.x:
Dim myCustomer As New Customer
Try
DoSomething()
Finally
If myCustomer IsNot Nothing Then
myCustomer.Disp ose()
End If
End Try
--
Hope this helps
Jay B. Harlow [MVP - Outlook]
..NET Application Architect, Enthusiast, & Evangelist
T.S. Bradley - http://www.tsbradley.net
"Hao Jiang" <Hao Ji***@discussio ns.microsoft.co mwrote in message
news:45******** *************** ***********@mic rosoft.com...
Hi,
I see in many MS example code that looks like this
Public Sub Foo()
dim myCustomer as New Customer
...
myCustomer.Disp ose()
myCustomer = Nothing
End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case?
Since myCustomer is a private variable, once it goes out of scope at the
next
line, the reference to the object should be released.
Thanks.
Hao
Hao Jiang,
Do you mean with MS samples, samples made by Micrsoft, if so can you than
show us some of those?
(URL's)
Because it is not correct, it is as
dim a as integer = 1 + 1
if a <2 then messagebox.show "there was a calculation error"
Thanks in advance,
Cor
"Jay B. Harlow [MVP - Outlook]" <Ja************ @tsbradley.nets chreef in
bericht news:eI******** ******@TK2MSFTN GP04.phx.gbl...
Hao Jiang,
As Göran & Herfried suggests setting myCustomer = Nothing is not needed
for the reason you give.
Instead of calling Dispose outright I would recommend using the new Using
statement in .NET 2.0 (VS 2005). The Using statement ensures that Dispose
is called even if one of the statements contained by the Using throws an
exception.
>Public Sub Foo()
Using myCustomer as New Customer
> ...
End Using
>End Sub
Which is basically the following in .NET 1.x:
Dim myCustomer As New Customer
Try
DoSomething()
Finally
If myCustomer IsNot Nothing Then
myCustomer.Disp ose()
End If
End Try
--
Hope this helps
Jay B. Harlow [MVP - Outlook]
.NET Application Architect, Enthusiast, & Evangelist
T.S. Bradley - http://www.tsbradley.net
"Hao Jiang" <Hao Ji***@discussio ns.microsoft.co mwrote in message
news:45******** *************** ***********@mic rosoft.com...
>Hi,
I see in many MS example code that looks like this
Public Sub Foo() dim myCustomer as New Customer ... myCustomer.Disp ose() myCustomer = Nothing End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case? Since myCustomer is a private variable, once it goes out of scope at the next line, the reference to the object should be released.
Thanks.
Hao
yeah; in vb6 when a variable went out of scope; it automagically
cleaned up after itself
except for DAO-- (which MS just ressurrected)
On Feb 26, 3:30 pm, Hao Jiang <Hao J...@discussion s.microsoft.com >
wrote:
Hi,
I see in many MS example code that looks like this
Public Sub Foo()
dim myCustomer as New Customer
...
myCustomer.Disp ose()
myCustomer = Nothing
End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case?
Since myCustomer is a private variable, once it goes out of scope at the next
line, the reference to the object should be released.
Thanks.
Hao
Thanks Goran, Hefried and Jay! That's what I thought.
Cor, please check out the 2nd and 3rd code section on this MS page: http://support.microsoft.com/kb/888168
Hao
"Cor Ligthert [MVP]" wrote:
Hao Jiang,
Do you mean with MS samples, samples made by Micrsoft, if so can you than
show us some of those?
(URL's)
Because it is not correct, it is as
dim a as integer = 1 + 1
if a <2 then messagebox.show "there was a calculation error"
Thanks in advance,
Cor
"Jay B. Harlow [MVP - Outlook]" <Ja************ @tsbradley.nets chreef in
bericht news:eI******** ******@TK2MSFTN GP04.phx.gbl...
Hao Jiang,
As Göran & Herfried suggests setting myCustomer = Nothing is not needed
for the reason you give.
Instead of calling Dispose outright I would recommend using the new Using
statement in .NET 2.0 (VS 2005). The Using statement ensures that Dispose
is called even if one of the statements contained by the Using throws an
exception.
Public Sub Foo()
Using myCustomer as New Customer
...
End Using
End Sub
Which is basically the following in .NET 1.x:
Dim myCustomer As New Customer
Try
DoSomething()
Finally
If myCustomer IsNot Nothing Then
myCustomer.Disp ose()
End If
End Try
--
Hope this helps
Jay B. Harlow [MVP - Outlook]
.NET Application Architect, Enthusiast, & Evangelist
T.S. Bradley - http://www.tsbradley.net
"Hao Jiang" <Hao Ji***@discussio ns.microsoft.co mwrote in message
news:45******** *************** ***********@mic rosoft.com...
Hi,
I see in many MS example code that looks like this
Public Sub Foo()
dim myCustomer as New Customer
...
myCustomer.Disp ose()
myCustomer = Nothing
End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case?
Since myCustomer is a private variable, once it goes out of scope at the
next
line, the reference to the object should be released.
Thanks.
Hao
On Feb 26, 5:30 pm, Hao Jiang <Hao J...@discussion s.microsoft.com >
wrote:
Hi,
I see in many MS example code that looks like this
Public Sub Foo()
dim myCustomer as New Customer
...
myCustomer.Disp ose()
myCustomer = Nothing
End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case?
Since myCustomer is a private variable, once it goes out of scope at the next
line, the reference to the object should be released.
Thanks.
Hao
Hao,
To be absolutely precise the object is eligible for garbage collection
even before it goes out of scope as long as it's not used anymore. I
don't know how aggressive the GC rules are specifically, but it is
possible that the GC would consider the line myCustomer = Nothing as
having no side effects on the object and would collect the object even
before the line executed. I suppose it's reasonable to theorize that
the JIT compiler could optimize the line away as well.
Brian
Brian
On Feb 27, 11:25 am, Hao Jiang <HaoJi...@discu ssions.microsof t.com>
wrote:
Thanks Goran, Hefried and Jay! That's what I thought.
Cor, please check out the 2nd and 3rd code section on this MS page:http://support.microsoft.com/kb/888168
Hao
Hmm...yeah, those are poorly written examples.
Hao,
Thanks, I have sent it further
Cor
"Hao Jiang" <Ha******@discu ssions.microsof t.comschreef in bericht
news:FA******** *************** ***********@mic rosoft.com...
Thanks Goran, Hefried and Jay! That's what I thought.
Cor, please check out the 2nd and 3rd code section on this MS page: http://support.microsoft.com/kb/888168
Hao
"Cor Ligthert [MVP]" wrote:
>Hao Jiang,
Do you mean with MS samples, samples made by Micrsoft, if so can you than show us some of those? (URL's)
Because it is not correct, it is as dim a as integer = 1 + 1 if a <2 then messagebox.show "there was a calculation error"
Thanks in advance,
Cor
"Jay B. Harlow [MVP - Outlook]" <Ja************ @tsbradley.nets chreef in bericht news:eI******** ******@TK2MSFTN GP04.phx.gbl...
Hao Jiang,
As Göran & Herfried suggests setting myCustomer = Nothing is not needed
for the reason you give.
Instead of calling Dispose outright I would recommend using the new
Using
statement in .NET 2.0 (VS 2005). The Using statement ensures that
Dispose
is called even if one of the statements contained by the Using throws
an
exception.
Public Sub Foo()
Using myCustomer as New Customer ...
End Using End Sub
Which is basically the following in .NET 1.x:
Dim myCustomer As New Customer
Try
DoSomething()
Finally
If myCustomer IsNot Nothing Then
myCustomer.Disp ose()
End If
End Try
--
Hope this helps
Jay B. Harlow [MVP - Outlook]
.NET Application Architect, Enthusiast, & Evangelist
T.S. Bradley - http://www.tsbradley.net
"Hao Jiang" <Hao Ji***@discussio ns.microsoft.co mwrote in message
news:45******** *************** ***********@mic rosoft.com... Hi,
I see in many MS example code that looks like this
Public Sub Foo() dim myCustomer as New Customer ... myCustomer.Disp ose() myCustomer = Nothing End Sub
I'm wondering if setting myCustomer = Nothing is necessary in this case? Since myCustomer is a private variable, once it goes out of scope at the next line, the reference to the object should be released.
Thanks.
Hao
This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Simon |
last post by:
Hi.
I don't have a problem per se, I was just wondering if anyone can
offer some opinions about the best way to go about creating and
disposing of a Singleton class.
I have a class (handling DB connections) which I have defined as a
singleton, using the following pattern (VB.net code)
Private Shared mInstance As clsConnection = Nothing
|
by: Henrik Dahl |
last post by:
Hello!
After I've finished using an instance of the SqlCommand class, should I then
invoke Dispose() on the instance. I suppose so, as there is a Dispose
method, but what does it actually release?
I would basically prefer to skip invoking Dispose() as this will free me
from determining when the usage actually has finished.
|
by: Fernando Cacciola |
last post by:
Help me out here please:
While watching Brad Abraham's MSDN TV talk about the Dispose pattern,
refering to:
public virtual void Dispose ( bool disposing )
{
if ( disposing )
{
<-- WHAT GOES HERE -->
|
by: Eric Newton |
last post by:
Ok, heres the scenario, this is code that you'll see peppered in most of my
classes that utilize any kind of object that has a Dispose method
Dim conn as SqlConnection = MakeSqlConnection()
Try
' do some DB work
conn.Close()
Finally
' following line FAILS if conn is actually nothing
if not conn is Nothing then conn.Dispose()
|
by: Joe Abou Jaoude |
last post by:
I m preparing to pass the 70-306 exam, so i downloaded Q & A
from multiple sites.
There's this question that really confuses me, coz i see that both
answers A and C are both correct.
Can anyone help me to pick the right answer and explain me why ?
thx.
Your development team creates an order entry application by using
Visual Studio .NET. The application stores and retrieves data in a
| |
by: Charles Law |
last post by:
I have a form on which user controls are placed at runtime. When a control
is added to the form a handler is added for an event that a high-level
object raises, which must be handled by the new control. When I close the
form I am expecting that the control ceases to be.
However, if my object raises the event after the form has been closed, I
find that there is still a user control object that handles it. Clearly the
user control has not...
|
by: Dennis |
last post by:
Ok, I'm trying to dispose of every object that I create that has a dispose
method based on advice from this newsgroup. However, I'm not sure how to
dispose of the following object that was created inside a method call.
dim myvar as new object1
object1.dosomethingmethod(new object2)
Note that object 2 has a dispose method but how do I dispose of it unless I
do the following:
|
by: active |
last post by:
In the main program I check to see if a certain form has been disposed.
Does it make sense in that form's FormClosed event to do:
Me.Dispose to make sure it is disposed the next time I check.
Or is that automatic?
Thanks
|
by: Smokey Grindle |
last post by:
I have a list box on my form, but I need to databind it to a data table that
is a private member of the form's class... so I basically have
Public Class MyForm
priate m_MyTable as new datatable
End Class
now where would I properly dispose of this? In the finalize method? I am
loading the data for the table in a subroutine that is executed at form
load, of course all the commands tied to it are wrapped in using blocks, but
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
| |
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |