Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    59

    [VB08] classe con funzione che ritorna un boolean

    Ragazzi, abbiate pietà di me .
    Sto implementando una classe "Persona". Dicendolo in italiano, vorrei che se la persona è sposata (sposata= true) ritornasse come valore 690, altrimenti (sposata = false) dovrebbe ritornare 0.
    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        
      detrazioneConiuge = che codice inserisco? 
     End Function
    Ho volutamente lasciato in bianco la Function perchè "non so come esprimere il concetto":
    la logica mi sembra corretta, ma non so come "tradurlo" in VB.NET.
    Mi date una mano?
    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Non capisco perchè ti debba tornare 690 la funzione anche perchè se la persona è sposata lo sai dalla Property 'Sposata' che ti ritorna 'True'.

    Ad ogni modo se hai questa necessità allora:

    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 Integer
         Return CInt(IIf(detrazioneConiuge, 690, 0))
    End Function
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    59
    Originariamente inviato da Pirelli72
    Non capisco perchè ti debba tornare 690 la funzione anche perchè se la persona è sposata lo sai dalla Property 'Sposata' che ti ritorna 'True'.

    Ad ogni modo se hai questa necessità allora:

    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 Integer
         Return CInt(IIf(detrazioneConiuge, 690, 0))
    End Function
    Prima di tutto, grazie x la risposta.
    Per quanto riguarda il tuo dubbio, sto facendo un programma che calcola l'IRPEF. Tra le detrazioni previste dalla legge, c'è anche quella x il "coniuge a carico" che è, appunto, 690 €.
    Il tutto - nel mio programma - avviene tramite una classe "Persona". Una delle proprietà che ho impostato è Sposato
    Quindi, la logica seguita è stata: "Se la persona (oggetto) è sposata (proprietà), togli 690 € dall'importo su cui calcolare l'irpef (Function), altrimenti no (boolean)". L'utente imposta "sposato" o "non sposato" tramite radiobutton.
    Se qualcuno ha delle proposte per una soluzione "più logica" della mia , sono ben accette.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Te l'ho data.
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    59
    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 ?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa, ma nel tuo programma principale non puoi scrivere

    If soggetto.Sposato Then Valore = 690 Else Valore = 0

    ??
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    59
    Originariamente inviato da oregon
    Scusa, ma nel tuo programma principale non puoi scrivere

    If soggetto.Sposato Then Valore = 690 Else Valore = 0

    ??
    In teoria, sì. In pratica, vorrei evitarlo per "imparare ad usare bene le classi".Ricordi la spiegazione che mi hai dato tu in questo topic?. Insomma, è un esercizio: usando la tua soluzione, risolverei il problema in questo momento, ma non imparerei nulla.
    Citando la risposta che mi avevi dato, mi sto sforzando di " di descrivere il soggetto con una classe": ecco perchè voglio farlo così.
    Può sembrarti una spiegazione inadeguata: in ogni caso, ti prego di accettarla.
    Per completezza, ti dico la "descrizione" che sto cercando di fare con la classe.
    In questo caso specifico, la Classe "Persona" descrive un "contribuente": un tizio che paga le tasse, per capirci.
    Per calcolare l'importo esatto, devo sapere:
    1. qual è il suo reddito lordo: e questo non è un problema
    2. se è sposato
    3. Quanti figli ha
    Io ho interpretato questi 3 punti come "proprietà" della classe Persona.
    A questo punto, la domanda è spontanea: sulla carta, sto seguendo un ragionamento corretto? Voglio dire: i punti 1,2 e 3, sono proprietà o no ? (non è una provocazione, voglio saperlo veramente)

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora puoi prendere spunto da

    codice:
        Dim issposato As Boolean = False
    
        Public Property Sposato() As Boolean
            Get
                Return issposato
            End Get
            Set(ByVal value As Boolean)
                issposato = value
            End Set
        End Property
    
        Public ReadOnly Property Detrazioni() As Integer
            Get
                If issposato Then
                    Return 690
                Else
                    Return 0
                End If
            End Get
        End Property
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da oregon
    Allora puoi prendere spunto da
    oregon: pappa pronta?
    Non è da te!


  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da gibra
    oregon: pappa pronta?
    Non è da te!

    Ha dimostrato volontà ... va incoraggiato ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.