Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [C#]Get e Set

  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    [C#]Get e Set

    Sto studiando le suddette proprietà e ho questo codice:

    codice:
    using System;
    
    namespace Wrox.Proprietà
    {
        class PropertyMethod
        {
            static void Main()
            {}
                private string foreName;
                public string ForeName
                {
                    get
                    {
                        return foreName;
                    }
                    set
                    {
                        if (value.Length > 20)
                            Console.WriteLine("Il valore è maggiore di 20!");
                        else
                            foreName = value;
                        
                    }
                }
        
            }
    
        }
    dopo averlo compilato, quando lo eseguo, a video non mi compare nulla, è normale?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da dwb
    Sto studiano le suddette proprietà e ho questo codice [...]
    dopo averlo compilato, quando lo eseguo, a video non mi compare nulla, è normale?
    Sì. Se hai compreso bene scopo e utilizzo delle proprietà, il motivo dovrebbe essere lampante.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Ovvero, viene solo verificato e modificato il valore senza mandare nulla in output dato che al contrario dei campi, le proprietà non sono classificate come variabili?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da dwb
    Ovvero, viene solo verificato e modificato il valore senza mandare nulla in output dato che al contrario dei campi, le proprietà non sono classificate come variabili?
    No, nel tuo codice scrivi una stringa in output quando il valore della proprietà viene impostato, ma nel codice principale dell'applicazione non esiste alcuna istruzione che fa questa operazione, quindi è normale che non accada nulla (il metodo Main è vuoto!).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Capito alka, ma se mettessi il codice nel metodo Main?Non si può vero?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  6. #6
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Nessuno?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  7. #7
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Per darti un'idea ....
    codice:
    /*
     * Created by SharpDevelop.
     * User: Brainjar
     * Date: 31/01/2007
     * Time: 8.52
     * 
     * To change this template use Tools | Options | Coding | Edit Standard Headers.
     */
    using System;
    using System.Collections.Generic;
    
    namespace esempio_02
    {
            class MainClass
            {	
                private static string foreName;
                public static string ForeName
                {
                        get
                        {
                            return foreName;
                        }
                        set
                        {
                            if (value.Length > 20)
                                Console.WriteLine("Il valore è maggiore di 20!");
                            else {
                                foreName = value;
                                Console.WriteLine("Il valore non è maggiore di 20!");
                            }
                        }
                }
    
                public static void Main(string[] args)
                {
    	    ForeName = "George Bush"; 
                     Console.WriteLine("Hello " + ForeName);
    	}
          }
    }
    Ciao, Brainjar

  8. #8
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Innanzitutto grazie per la risposta!Provando il tuo codice mi da errore e non va proprio, ma, con qualche modifica funziona, eccolo:
    codice:
    using System;
    
    namespace Wrox.Proprietà
    {
        class PropertyMethod
        {
            
                private string foreName;
                public string ForeName
                {
                    get
                    {
                        return foreName;
                    }
                    set
                    {
                        if (value.Length > 20)
                            Console.WriteLine("Il valore è maggiore di 20!");
                        else
                            foreName = value;
                        
                    }
                }
            public static void Main(string[] args)
            {
                PropertyMethod prova = new PropertyMethod();
                prova.ForeName = "George Bush";
                Console.WriteLine("Ciao " + prova.ForeName);
    
            }
        
            }
        
    
        }
    Ora, una volta compilato, lo eseguo e in consolle mi viene fuori il saluto personalizzato(Ciao George Bush", ma, una cosa non mi è chiara, get e set che si trovano sopra, a questo punto, a cosa servono?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  9. #9
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    A me l'esempio funziona così come postato.
    Ora, una volta compilato, lo eseguo e in consolle mi viene fuori il saluto personalizzato(Ciao George Bush", ma, una cosa non mi è chiara, get e set che si trovano sopra, a questo punto, a cosa servono?
    Servono.
    codice:
                public string ForeName
                {
                    get
                    {
                        return foreName;
                    }
                    set
                    {
                        if (value.Length > 20)
                            Console.WriteLine("Il valore è maggiore di 20!");
                        else
                            foreName = value;
                        
                    }
                }
    Quando tu imposti una proprietà, vorresti eseguire un controllo immediato sulla correttezza
    di questa proprietà. Il codice su riportato ti controlla, ad esempio se un valore supera i
    20 caratteri di lunghezza. Molto spesso il controllo non è banale, come ad esempio per le
    date o per un qualche dato particolare. Se 'incapsuli' i controlli in questo modo, non dovrai
    tutte le volte scriverli nel codice. Una proprietà di tipo data avra' i suoi controlli, una di
    tipo CodiceFiscale altri ecc...
    Certo qui si sta parlando di programmazione di un certo livello. Prova a leggere bene il
    contesto dal libro (o dal manuale) da dove hai preso l'esempio. Perchè se fai la domanda
    ".... a cosa serve...." vuol dire che stai scrivendo codice senza capirlo.
    Ciao, Brainjar

  10. #10
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Tutto chiaro!
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

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.