Partager via


Encapsuler le champ (Refactorisation C#)

L'opération de refactorisation Encapsuler le champ vous permet de créer rapidement une propriété à partir d'un champ existant, et de mettre facilement à jour votre code avec les références à la nouvelle propriété.

Lorsqu'un champ est public, d'autres objets peuvent y accéder directement et le modifier sans que l'objet propriétaire de ce champ ne le détecte.En utilisant des propriétés pour encapsuler ce champ, vous pouvez bloquer l'accès direct aux champs.

Pour créer la nouvelle propriété, l'opération Encapsuler le champ change le modificateur d'accès du champ que vous souhaitez encapsuler en privé, puis génère des accesseurs get et set pour ce champ.Dans certains cas, seul un accesseur get est généré, comme lorsque le champ est déclaré en lecture seule.

Le moteur de refactorisation met à jour votre code avec des références à la nouvelle propriété dans les zones spécifiées dans la section Mettre à jour les références de la boîte de dialogue Encapsuler le champ.

Pour créer une propriété à partir d'un champ

  1. Créez une application console nommée EncapsulateFieldExample, puis remplacez Program par l'exemple de code suivant.

    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. Dans l' efc4xwkb(v=vs.110).md, placez le curseur dans la déclaration, sur le nom du champ que vous voulez encapsuler.Dans l'exemple ci-dessous, placez le curseur sur le mot width :

    public int width, height;
    
  3. Dans le menu Refactoriser, cliquez sur Encapsuler le champ.

    La boîte de dialogue Encapsuler le champ apparaît.

    Vous pouvez également taper le raccourci clavier CTRL+R, E pour afficher la boîte de dialogue Encapsuler le champ.

    Vous pouvez également cliquer avec le bouton droit sur le curseur, pointer sur Refactoriser, puis cliquer sur Encapsuler le champ pour afficher la boîte de dialogue Encapsuler le champ.

  4. Spécifiez les paramètres.

  5. Appuyez sur ENTRÉE ou cliquez sur le bouton OK.

  6. Si vous avez sélectionné l'option Afficher un aperçu des modifications de la référence, la fenêtre Afficher un aperçu des modifications de la référence apparaît.Cliquez sur le bouton Appliquer.

    Le code d'accesseur get et set suivant est affiché dans votre fichier source :

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

    Le code dans la méthode Main est également mis à jour vis-à-vis du nouveau nom de propriété Width.

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

Notes

L'opération Encapsuler le champ est possible uniquement lorsque le curseur est positionné sur la même ligne que la déclaration de champ.

Pour les déclarations qui déclarent plusieurs champs, Encapsuler le champ utilise la virgule comme limite entre les différents champs et initialise la refactorisation sur le champ le plus proche du curseur et situé sur la même ligne que ce dernier.Vous pouvez également spécifier quel champ vous voulez encapsuler en sélectionnant le nom de ce champ dans la déclaration.

Le code généré par cette opération de refactorisation est modélisé par la fonctionnalité d'extraits de code Encapsuler le champ.Les Extraits de code sont modifiables.Pour plus d’informations, consultez Extraits de code.

Voir aussi

Référence

Extraits de code Visual C#

Concepts

Refactorisation (C#)