text: J'ai une classe de base avec une méthode pour synchroniser les données. Cependant, je dois être capable de créer un nouvel objet dans le processus qui est le même que l'objet parent qui a hérité de la classe de base.Comment définir un objet comme le type d'un autre objet?
Je veux faire quelque chose comme ceci:
Sub Transfer(ByVal OBType As BaseClass)
Dim A as new typeof(OBType)
A.doSomething()
End Sub
EDIT
J'appologize pour toute confusion
Mon cas d'utilisation est que je transférer des données entre deux objets et la méthode est responsable de la fusion des changements entre eux. Lorsque la méthode est appelée, elle reçoit un ensemble d'enregistrements et doit ensuite appeler une méthode de transfert qui les synchronise. Lors de l'exécution de GetDataRow, j'ai besoin d'une nouvelle version de l'objet et j'ai également besoin d'une nouvelle version pour terminer le transfert.
Voici une version allégée du code:
GetDataRow crée l'objet forment les données DataRow et transfert compare ensuite et apporte les modifications nécessaires.
Sub Transfer(ByVal OBType As BaseBLLClass)
'Get a list from each side and synch
Dim DT As DataTable = GetDataMethod() ‘Gets data to transfer
Dim A As OBType
Dim B As OBType
For Each Row As DataRow In DT.Rows
A = New OBType
B = New OBType
GetDataRow(A, Row).TransferData(B)
Next
End Sub
Solution
Public Shared Sub Base_Transfer(Of OBType As BaseBLLClass)()
'Get a list from each side and synch
Dim DT As DataTable = GetDataMethod() ‘Gets data to transfer
Dim A As BaseClassUIM = Activator.CreateInstance(GetType(OBType))
Dim B As BaseClassUIM = Activator.CreateInstance(GetType(OBType))
For Each Row As DataRow In DT.Rows
A = Activator.CreateInstance(GetType(OBType))
B = Activator.CreateInstance(GetType(OBType))
GetDataRow(A, Row).TransferData(B)
Next
End Sub
Votre conception ... il y a quelque chose qui ne va pas. – Will
Oui, c'est pourquoi j'ai posé la question. Le nouveau typeof (OBType) n'est pas un code valide. C'est donner un exemple de ce que je veux faire, pas nécessairement comment le faire. – Middletone
Si vous avez posé la question de l'autre côté, comme "Je dois faire ABC et la seule façon dont je peux penser à le faire est ZXY Y a-t-il un meilleur moyen?" vous obtiendriez de meilleures réponses. – Will