对不起,很难解释我的问题。
我有一个类,并且在新方法中,我希望能够传递该类的一个实例-如果传递了一个实例,则应使用该实例(代替“ me”)。
一个例子...
Public Class DataConnection
Implements IDisposable
Public Property SqlCnn As SqlClient.SqlConnection
Private _isNewInstance As Boolean
Public Sub New()
_isNewInstance = True
SqlCnn = New SqlClient.SqlConnection
End Sub
Public Sub New(dc As DataConnection)
_isNewInstance = False
Me = dc ' <- this is not valid
End Sub
#Region "IDisposable Support"
Private disposedValue As Boolean
Protected Overridable Sub Dispose(disposing As Boolean)
If Not disposedValue Then
If disposing Then
End If
If _isNewInstance Then
SqlCnn.Close()
SqlCnn.Dispose()
SqlCnn = Nothing
End If
' Do my clean up code
End If
disposedValue = True
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
End Sub
#End Region
End Class
然后,我希望能够创建这样的新实例:
Dim dc As New DataConnection
Dim dc2 As New DataConnection(dc)
我需要它来支持“ using”语句,因为我的真实类实现了iDisposable,并且在没有传递实例的情况下需要做一件事,而在新方法中传递的是实例。所以我不能使用单例。
答案 0 :(得分:1)
好的,从哪里开始?
我指的是当前对象的内部。
例如表单,类或其他对象。
我是简写,不像C中的指针那样工作。
如果您确实要复制两个类的属性,则应该实现.Copy Sub或在类外部执行。
您尝试过
Public Function CopyAnObject(ByVal Source as Object) as Object
CopyAnObject = Source
End Function
我很困惑这种情况的用例,但是似乎您正在尝试入侵不值得入侵的东西?
OP是否可以提供有关他/他想要实现的目标的更多信息?
如果您真的很想破解它,请将整个Class转换为IO.MemoryStream并从那里进行破解。