+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Classi

  1. #1
    gnappi non è in linea Scolaretto
    Buonaserata a tutti.
    Ho in animo di passare alla OOP:ne conosco e ne capisco le difficoltà, ma voglio provare,in punta di piedi.
    Ho subito uno scoglio:
    sto cercando di creare una classe composita,ma non ci riesco.
    Sono partito da un esempio banale:
    Public Class Class_automobili
        Public Enum marca
            FIAT
            ALFAROMEO
            LANCIA
        End Enum
        Public Enum MODELLO
            PANDA
            CROMA
            THEMA
            STELVIO
        End Enum
    
        Public Enum COLORE
            BIANCO
            NERO
            ROSSO
        End Enum
    End Class
    
    Ora,io vedo marca,modello e colore, mentre il mio scopo è quello di vedere solo la marca e quindi i modelli di quella marca ed infine i colori per quel modello.

    Ecco.E' da stamattina che ci provo, ma inutilmente.

    Grazie a chi mi metterà con semplicità sulla giusta strada.

  2. #2
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Le classi sono astratte, non possono e non devono contenere dati.
    Sei fuori strada completamente.
    ℹ️ Leggi di più su gibra ...

  3. #3
    Quegli enum non c'entrano praticamente nulla.

    Dai un'occhiata a qualche esempio e comunque, leggi un libro e segui gli esempi

    https://www.tutorialspoint.com/vb.ne...es_objects.htm
    ℹ️ Leggi di più su AntonioG ...

  4. #4
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    Quegli enum non c'entrano praticamente nulla.

    Dai un'occhiata a qualche esempio e comunque, leggi un libro e segui gli esempi

    https://www.tutorialspoint.com/vb.ne...es_objects.htm
    Ho letto l'articolo e mi sono reso conto che per me la strada è tutta in salita!Non è una resa,ma solo una presa d'atto.
    Posso chiedere allora quale strada dovrei intraprendere per risolvere il mio esempio? (solo se non chiedo troppo,però!)

  5. #5
    ℹ️ Leggi di più su AntonioG ...

  6. #6
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    Grazie mille.Molto gentile.

  7. #7
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    Quegli enum non c'entrano praticamente nulla.
    AntonioG, perdoni la mia ignoranza.
    Le voglio chiedere di dirmi se questo codice (che funziona) è corretto o devo comunque cestinarlo:

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim t As New impiegati
            t.nome = "Gianfranco"
            t.cognome = "Napolitano"
            t.sesso = 1
    
            TextBox1.Text = t.cognome
            TextBox2.Text = t.nome
            TextBox3.Text = t.sesso.ToString
        End Sub
    
    
        Public Class impiegati
            Public v_nome As String
            Public v_cognome As String
            Public v_sesso As sex
    
            Public Property nome() As String
                Get
                    Return v_nome
                End Get
                Set(ByVal value As String)
                    v_nome = value
                End Set
            End Property
    
            Public Property cognome() As String
                Get
                    Return v_cognome
                End Get
                Set(ByVal value As String)
                    v_cognome = value
                End Set
            End Property
    
            Public Property sesso() As String
                Get
                    Select Case Val(v_sesso)
                        Case 0
                            v_sesso = sex.maschio
                        Case Else
                            v_sesso = sex.femmina
                    End Select
                    Return v_sesso.ToString
                End Get
                Set(ByVal value As String)
                    v_sesso = value
                End Set
            End Property
    
            Public Enum sex
                maschio
                femmina
            End Enum
        End Class
    
    Grazie.

  8. #8
    Sgrubak non è in linea Scribacchino
    Cestinare no... Io userei la forma contratta per dichiarare le proprietà dato che all'effettivo non ci devi fare nulla se non il mantenimento dei relativi valori. Trasformerei pertanto la loro dichiarazione così:
    ...
    Public Property nome As String
    Public Property cognome As String
    Public Property sesso As sex
    ...
    
    evitando così quell'accrocchio che fai nel Getter della proprietà [sesso].
    Ti basta solo correggere il codice nell'evento Load
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim t As New impiegati
        t.nome = "Gianfranco"
        t.cognome = "Napolitano"
        t.sesso = sex.Maschio
     
        TextBox1.Text = t.cognome
        TextBox2.Text = t.nome
        TextBox3.Text = t.sesso.ToString
    End Sub
    
    P.S: L'intellisense ti suggerisce di dichiarare il nome della Enum cominciando con una maiuscola (quindi Sex e non sex). Per comodità seguirei il consiglio per uniformare lo stile del tuo codice a tutto quello del framework. Idem per i nomi delle Properties.

  9. #9
    La classe chiamala al singolare magari con una C all'inizio

    Class CImpiegato
    ℹ️ Leggi di più su AntonioG ...

  10. #10
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    Cestinare no... Io userei la forma contratta per dichiarare le proprietà dato che all'effettivo non ci devi fare nulla se non il mantenimento dei relativi valori. Trasformerei pertanto la loro dichiarazione così:
    ...
    Public Property nome As String
    Public Property cognome As String
    Public Property sesso As sex
    ...
    
    evitando così quell'accrocchio che fai nel Getter della proprietà [sesso].
    Ti basta solo correggere il codice nell'evento Load
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim t As New impiegati
        t.nome = "Gianfranco"
        t.cognome = "Napolitano"
        t.sesso = sex.Maschio
     
        TextBox1.Text = t.cognome
        TextBox2.Text = t.nome
        TextBox3.Text = t.sesso.ToString
    End Sub
    
    P.S: L'intellisense ti suggerisce di dichiarare il nome della Enum cominciando con una maiuscola (quindi Sex e non sex). Per comodità seguirei il consiglio per uniformare lo stile del tuo codice a tutto quello del framework. Idem per i nomi delle Properties.
    Grazie ,Sgrubak.Qui imparo sempre qualcosa. Grazie ancora.

+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Classi in VBA
    Da Chico nel forum Microsoft Excel
    Risposte: 4
    Ultimo Post: 14-04-2020, 21:29
  2. Classi
    Da Popli nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 25-07-2014, 19:14
  3. Info Classi
    Da Missileback nel forum PHP
    Risposte: 1
    Ultimo Post: 28-09-2013, 00:10
  4. Classi in VBA
    Da fcavalli nel forum Microsoft Word
    Risposte: 8
    Ultimo Post: 04-12-2008, 20:16
  5. VB2005-Le classi del GDI+
    Da Gandalfrank nel forum Visual Basic .Net
    Risposte: 5
    Ultimo Post: 01-05-2008, 22:25