Condividi tramite


Refactoring Incapsula campo (C#)

L'operazione di refactoring Incapsula campo consente di creare velocemente una proprietà da un campo esistente e di aggiornare completamente il codice con i riferimenti alla nuova proprietà.

Quando un campo è public, altri oggetti possono accedere direttamente a tale campo e modificarlo, senza essere rilevati dall'oggetto a cui appartiene il campo. Se il campo viene incapsulato utilizzando le proprietà, è possibile impedire l'accesso diretto ai campi.

Per creare la nuova proprietà, l'operazione Incapsula campo imposta il modificatore di accesso relativo al campo che si desidera incapsulare su private, quindi genera le funzioni di accesso get e set per tale campo. In alcuni casi, viene generata una sola funzione di accesso get, ad esempio quando il campo viene dichiarato di sola lettura.

Il motore di refactoring consente di aggiornare il codice con i riferimenti alla nuova proprietà nelle aree specificate nella sezione Aggiorna riferimenti della finestra di dialogo Incapsula campo.

Per creare una proprietà da un campo

  1. Creare un'applicazione console denominata EncapsulateFieldExample quindi sostituire Program con il codice di esempio riportato di seguito.

    class Square
    {
        // Select the word 'width' and then use Encapsulate Field.
        public int width, height;
    }
    class MainClass
    {
        public static void Main()
        {
            Square mySquare = new Square();
            mySquare.width = 110;
            mySquare.height = 150;
            // Output values for width and height.
            Console.WriteLine("width = {0}", mySquare.width);
            Console.WriteLine("height = {0}", mySquare.height);
        }
    }
    
  2. In Editor di codice e di testo posizionare il cursore nella dichiarazione sul nome del campo che si desidera incapsulare. Nell'esempio seguente posizionare il cursore sulla parola width:

    public int width, height;
    
  3. Scegliere Incapsula campo dal menu Effettua refactoring.

    Viene visualizzata la finestra di dialogo Incapsula campo.

    Per visualizzare la finestra di dialogo Incapsula campo, è possibile inoltre premere i tasti di scelta rapida CTRL+R, E

    oppure fare clic con il pulsante destro del mouse sul cursore, scegliere Effettua refactoring e quindi Incapsula campo.

  4. Specificare le impostazioni.

  5. Premere INVIO o fare clic sul pulsante OK.

  6. Se l'opzione Anteprima modifiche riferimento è selezionata, verrà visualizzata la finestra Anteprima modifiche riferimento. Fare clic sul pulsante Applica.

    Nel file di origine verrà visualizzato il codice delle funzioni di accesso get e set di seguito riportato:

    public int Width
    {
        get { return width; }
        set { width = value; }
    }
    

    Anche il codice nel metodo Main viene aggiornato con il nuovo nome della proprietà Width.

    Square mySquare = new Square();
    mySquare.Width = 110;
    mySquare.height = 150;
    // Output values for width and height.
    Console.WriteLine("width = {0}", mySquare.Width);
    

Note

L'operazione Incapsula campo può essere eseguita solo quando il cursore è posizionato sulla stessa riga della dichiarazione di campo.

Per le dichiarazioni relative a più campi, l'operazione Incapsula campo utilizza la virgola come limite tra i campi e avvia l'operazione di refactoring nel campo più vicino al cursore e sulla stessa riga del cursore. È inoltre possibile specificare quale campo si desidera incapsulare selezionandone il nome nella dichiarazione.

Il codice generato da questa operazione di refactoring viene modellato dalla funzionalità dei frammenti di codice di Incapsula campo. I frammenti di codice sono modificabili. Per ulteriori informazioni, vedere Procedura: gestire frammenti di codice.

Vedere anche

Riferimenti

Frammenti di codice Visual C#

Concetti

Refactoring (C#)