Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580

    vb.net e utilizzo variabili property nelle classi(domanda)

    salve a tutti
    data una classe:

    codice:
    public class prova
     dim variabile as string
      public property variabile
       ecc....
      return
      end property
    
    public sub usaLaVariabile
       mid(variabile....
    end sub
    end class
    la mia domanda è questa, se invece di mettere tutti quei blocchi property inserisco semplicemente una variabili pubblica e la utilizzo nei metodi di classe cambia qualcosa?
    io ho provato e pare che nn cambia niente?
    xke si consiglia sempre di utilizzare i blocchi property?
    grazie
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Nel "blocco" property hai la possibilita' di elaborare/controllare il valore prima di assegnarlo e/o restituirlo. In piu' puoi renderlo readonly per chi utilizza la classe nel caso non vuoi dare la possibilita' di cambiare da fuori il valore. Se definisci semplici campi public non puoi fare tutto cio'.
    Quindi nel tuo caso specifico potrebbe essere qualcosa di simile a
    codice:
        Dim m_variabile As String
    
        Public ReadOnly Property Variabile() As String
            Get
                If m_variabile = "qualcosa" Then
                    Return m_variabile
                End If
                Return ""
            End Get
        End Property
    Saluti a tutti
    Riccardo

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da riccardone
    Nel "blocco" property hai la possibilita' di elaborare/controllare il valore prima di assegnarlo e/o restituirlo.
    Aggiungo un'ulteriore precisazione alla già ottima spiegazione di Riccardone: utilizzando le Property, puoi dare luogo anche ai cosiddetti "side effects".

    In sostanza, oltre a controllare che si stia impostando un valore corretto nella proprietà, nel metodo di assegnazione puoi modificare altri campi privati dell'oggetto affinchè il suo stato rimanga consistente, oppure richiamare altri metodi di conseguenza.

    Per esemplificare, supponi di aver creato una classe che implementa un controllo visuale; usando una proprietà per assegnare il colore di sfondo, nel metodo di assegnazione della proprietà potresti 1) verificare che il valore sia diverso dal precedente, 2) assegnare il valore al campo privato interno, 3) richiamare il metodo che esegue automaticamente il ridisegno del controllo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    wow
    grazie

    beh tutto sommato nn uso questa particolare funzionalita di controllo
    cmq per progetti semplici utilizzero solo public

    grazie per il chiarimento
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da Kahm
    beh tutto sommato nn uso questa particolare funzionalita di controllo cmq per progetti semplici utilizzero solo public
    Puoi sempre passare, in ogni momento, da un campo pubblico ad una proprietà pubblica quando si presenta la necessità di "reagire" alla modifica di una variabile; se il nome viene mantenuto, il codice che crea istanze della tua classe e ne modifica i campi non deve essere comunque modificato, uno dei vantaggi principali della programmazione ad oggetti.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.