login  Naam:   Wachtwoord: 
Registreer je!
 Forum

DirectCast of CType kent variabele niet als Type (Opgelost)

Offline Ontani - 14/04/2009 10:58 (laatste wijziging 14/04/2009 15:25)
Avatar van OntaniGouden medailleGouden medailleGouden medailleGouden medaille

-1
  1. 'Voorbeeld met fouten
  2.  
  3. Dim controlType As Type = FALFormBase
  4. Dim senderType As Type = FALViewBase
  5.  
  6. If Not controlType Is Nothing And Not senderType Is Nothing Then
  7. 'controlType and senderType are not reconized
  8. DirectCast(cntrl, controlType).FALUsernumber = DirectCast(sender, senderType).FALUsernumber
  9. End If
  10.  
  11. 'Voorbeeld dat werkt
  12.  
  13. If Not controlType Is Nothing And Not senderType Is Nothing Then
  14. DirectCast(cntrl, FALFormBase).FALUsernumber = DirectCast(sender, FALViewBase).FALUsernumber
  15. End If


In het eerste voorbeeld krijg ik de fout bij controlType en senderType:

Type controlType is not defined.
Type senderType is not defined.

Het tweede voorbeeld werkt wel maar die types zouden in een controle aangepast moeten worden:

  1. If cntrl.GetType.BaseType Is GetType(FALViewBase) Then
  2. If sender.GetType.BaseType Is GetType(FALViewBase) Then
  3. controlType = GetType(FALViewBase)
  4. senderType = GetType(FALViewBase)
  5.  
  6. ElseIf sender.GetType.BaseType Is GetType(FALFormBase) Then
  7. controlType = GetType(FALViewBase)
  8. senderType = GetType(FALFormBase)
  9.  
  10. End If
  11. ElseIf cntrl.GetType.BaseType Is GetType(FALFormBase) Then
  12. If sender.GetType.BaseType Is GetType(FALViewBase) Then
  13. controlType = GetType(FALFormBase)
  14. senderType = GetType(FALViewBase)
  15.  
  16. ElseIf sender.GetType.BaseType Is GetType(FALFormBase) Then
  17. controlType = GetType(FALFormBase)
  18. senderType = GetType(FALFormBase)
  19.  
  20. End If
  21. End If


en op het einde dus de code in het begin van de post. Omdat ik die niet in elke if of elseif wil plaatsen (omdat me dat veel copy / paste werk kan besparen als er nog ooit andere properties doorgegeven zouden moeten worden)

Edit: Dit is blijkbaar een voorwaarde van CLR dat casting types bekend moeten zijn voor compiletime en dus iets wat ik niet zal kunnen implementeren.

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s