Originariamente inviato da Davon
Continuo qui, perchè il problema è solo parzialmente risolto.
Ho implementato la classe come ha detto Pirelli72.
Purtroppo, anzichè ritornare 690 oppure 0, mi ritorna -1 o 0.
La classe è questa
codice:
 Public Property Sposato() As Boolean        
 Get             
Return detrazioneConiuge        
 End Get        
 Set(ByVal value As Boolean)             
detrazioneConiuge = value      
   End Set    
 End Property     
Public Function detraiConiuge() As Boolean      
   Return CInt(IIf(detrazioneConiuge, 690, 0))     
  End Function
Ho usato la classe per valorizzare una variabile in modo opportuno, a seconda della selezione dell'utente tramite radiobutton.
codice:
 Dim soggetto As New Persona         
 If RadioSingle.Checked = True Then      'se scelgo "single", torna 0: corretto      
 soggetto.Sposato = False         End If          
 If RadioSposato.Checked = True Then          
  soggetto.Sposato = True         End If ' se scelgo "sposato", torna -1: dovrebbe tornare -690
Come faccio a valorizzare con "-690" il caso soggetto.Sposato ?


Davon sei un pò sbadatello, meno male ti ho scritto il codice, non dovevi fare altro che copia/incolla:

Dai un'occhiata a quello che hai scritto:

codice:
Public Function detraiConiuge() As Boolean      
   Return CInt(IIf(detrazioneConiuge, 690, 0))     
  End Function
Non è senz'altro quello che to ho suggerito:

codice:
Public Function detraiConiuge() As integer
   Return CInt(IIf(detrazioneConiuge, 690, 0))     
 End Function


La funzione IIf non può che ritornare o 690 o 0 a seconda che detrazioneConiuge sia o True o False. Purtroppo se però alla funzione gli fai tornare un Boolean!!!!!!