处置和没有区别

Aru*_*rul 4 vb.net

 **Public Sub ExecuteQuery(ByVal pQueryString As String, Optional ByVal pConn As Odbc.OdbcConnection = Nothing)

            Dim Mycmd As New Odbc.OdbcCommand(pQueryString, MyConn)
            Mycmd.ExecuteNonQuery()
            Mycmd.Dispose()

    End Sub**
Run Code Online (Sandbox Code Playgroud)

这里我使用Dispose(Mycmd.Dispose())清除对象.我可以在这里使用Nothing(Mycmd = Nothing?.哪个最好?

请帮助我先生,

通过

了Arul.

Sum*_*mit 7

Dim Mycmd As New Odbc.OdbcCommand(pQueryString, MyConn)
Run Code Online (Sandbox Code Playgroud)

此命令将New Odbc.OdbcCommand(pQueryString,MyConn)创建的对象的引用存储到Mycmd中,即Mycmd基本上具有新创建的对象的地址.

现在当你这样做

Mycmd.Dispose()
Run Code Online (Sandbox Code Playgroud)

然后它表示新创建的对象的使用已结束,并且在垃圾回收期间可以释放分配给该对象的空间.

但是当你这样做的时候

Set Mycmd = Nothing
Run Code Online (Sandbox Code Playgroud)

然后它只是从Mycmd中删除新创建的对象的引用,它不会将其标记为垃圾回收.