Partager via


Refactorisation des classes et des types (Concepteur de classes)

Quand vous refactorisez du code, vous le rendez plus facile à comprendre et à gérer. Vous le rendez également plus efficace en changeant sa structure interne et la conception de ses objets, sans altérer son comportement externe. Utilisez le Concepteur de classes et la fenêtre Détails de classe pour réduire votre charge de travail et limiter le risque d'introduire des bugs quand vous refactorisez du code Visual C# .NET, Visual Basic .NET ou C++ dans votre projet Visual Studio.

Notes

Les fichiers d'un projet peuvent être en lecture seule, car le projet est sous contrôle de code source et n'est pas extrait (projet référencé), ou ses fichiers sont marqués en lecture seule sur le disque.Quand vous travaillez dans un projet ayant l'un de ces états, vous avez plusieurs façons différentes d'enregistrer votre travail.Cela s'applique au code que vous refactorisez et au code que vous changez d'une autre façon, par exemple en le modifiant directement.Pour plus d'informations, consultez Display of Read-Only Information.

Tâches courantes

Tâche

Contenu de support

Refactorisation des classes : vous pouvez utiliser les opérations de refactorisation pour fractionner une classe en classes partielles ou pour implémenter une classe de base abstraite.

Utilisation des interfaces : dans le Concepteur de classes, vous pouvez implémenter une interface pour le diagramme de classes en la connectant à une classe qui fournit du code pour les méthodes d'interface. Si vous utilisez Visual C#, vous pouvez également extraire un ou plusieurs membres publics d'un type dans une nouvelle interface.

Refactorisation des types, des membres de type et des paramètres : à l'aide du Concepteur de classes, vous pouvez facilement effectuer des changements, par exemple renommer un type ou des membres de type. Vous pouvez substituer des membres de type ou les déplacer d'un type à un autre. Vous pouvez facilement créer des types Nullable. En outre, si vous utilisez Visual C#, vous pouvez réorganiser les paramètres de méthode.

Implémentation de classes de base abstraites

Vous pouvez utiliser le Concepteur de classes pour implémenter une classe abstraite.

Pour cette procédure, voici ce qui est supposé :

  • Votre projet contient une classe abstraite.

  • La classe abstraite contient des membres abstraits.

  • La classe abstraite est la classe de base d'une relation d'héritage avec une autre classe. (La classe dérivée n'a pas besoin d'être une classe abstraite.)

Implémenter une classe abstraite

  • Cliquez avec le bouton droit sur la classe dérivée, cliquez sur IntelliSense, puis sur Implémenter une classe abstraite. Tous les membres abstraits de la classe de base sont implémentés dans la classe dérivée.

Pour plus d'informations, consultez Comment : créer l'héritage entre les types (Concepteur de classes) et Comment : créer des types à l'aide du Concepteur de classes.

Extraction de membres dans une interface

Vous pouvez extraire un ou plusieurs membres publics d'un type dans une nouvelle interface.

Pour extraire des membres dans une nouvelle interface

  1. Dans le Concepteur de classes, cliquez avec le bouton droit sur le type qui contient le ou les membres à extraire, pointez sur Refactoriser, puis cliquez sur Extraire l'interface.

    La boîte de dialogue Extraire l'interface affiche les valeurs par défaut du nom de l'interface et du nom du fichier de code dans lequel elle est déclarée. Acceptez ou changez les valeurs par défaut.

  2. Dans le volet Sélectionner des membres publics pour former l'interface, cochez ou décochez la case située à côté des membres à extraire dans la nouvelle interface, puis cliquez sur OK.

    Une interface est créée, et le fichier qui l'héberge est ajouté au projet.

Substitution des membres de type

Dans le Concepteur de classes, vous pouvez autoriser certains membres tels que les méthodes et les propriétés d'une classe enfant à substituer les membres hérités d'une classe de base. La substitution d'un membre n'est possible que dans les circonstances suivantes :

  • La méthode de base remplacée doit être virtuelle, abstraite ou override. (Elle ne peut pas être non virtuelle ou statique.)

Pour substituer un membre

  1. Dans le diagramme de classes, cliquez avec le bouton droit sur une forme de classe, cliquez sur IntelliSense, puis sur Substituerles membres.

    Une boîte de dialogue affiche les membres qui peuvent être substitués.

  2. Dans la liste, spécifiez un membre.

    Un membre ayant le même nom, le même modificateur d'accès et la même valeur de retour, apparaît dans la classe. En outre, sa propriété Modificateur d'héritage à la valeur Overrides en Visual Basic, ou override en C#.

Attribution d'un nouveau nom aux types et membres de type

Au sein du Concepteur de classes, vous pouvez renommer un type ou un membre de type dans le diagramme de classes ou dans la fenêtre Propriétés. Dans la fenêtre Détails de classe, vous pouvez changer le nom d'un membre mais pas d'un type. Le changement de nom d'un type ou d'un membre de type se propage à toutes les fenêtres et tous les emplacements de code où apparaissait l'ancien nom.

Pour attribuer un nouveau nom dans le Concepteur de classes

  1. Dans le diagramme de classes, sélectionnez le type ou le membre.

    Le nom du membre devient modifiable.

  2. Tapez le nouveau nom du membre de type ou du type

Pour attribuer un nouveau nom dans la fenêtre Détails de classe

  1. Pour afficher la fenêtre Détails de classe, cliquez avec le bouton droit sur le type ou le membre de type, puis cliquez sur Détails de classe.

    La fenêtre Détails de classe s'affiche.

  2. Dans la colonne Nom, changez le nom du membre de type.

  3. Pour déplacer le focus hors de la cellule, appuyez sur la touche Entrée ou cliquez en dehors de la cellule.

    Notes

    Dans la fenêtre Détails de classe, vous pouvez changer le nom d'un membre mais pas d'un type.

Pour attribuer un nouveau nom dans la fenêtre Propriétés

  1. Dans le diagramme de classes ou la fenêtre Détails de classe, cliquez avec le bouton droit sur le type ou le membre, puis cliquez sur Propriétés.

    La fenêtre Propriétés apparaît et affiche les propriétés du type ou du membre de type.

  2. Dans la propriété Nom, changez le nom du type ou du membre de type.

    Le nouveau nom se propage à l'ensemble des fenêtres et des emplacements de code du projet actif, où apparaissait l'ancien nom.

Réorganisation des paramètres

Au sein du Concepteur de classes, vous pouvez changer l'ordre des paramètres de méthode dans les types.

Notes

Les paramètres optionnels doivent être les derniers paramètres dans la liste de paramètres.Pour plus d'informations sur la création de paramètres optionnels à l'aide du Concepteur de classes, consultez Adding Parameters to Methods.

Pour changer l'ordre des paramètres

  1. Dans le diagramme de classes, développez la forme de type, puis le compartiment Méthodes.

  2. Dans le compartiment Méthodes, cliquez avec le bouton droit sur la méthode dont vous souhaitez réorganiser les paramètres, pointez sur Refactoriser, puis cliquez sur Réorganiser les paramètres.

    La boîte de dialogue Réorganiser les paramètres s'affiche.

  3. Dans la boîte de dialogue Réorganiser les paramètres, placez les paramètres dans l'ordre de votre choix, puis cliquez sur OK.

    L'ordre des paramètres change dans le code et dans la forme du diagramme de classes.

Déplacement des membres de type d'un type à un autre

À l'aide du Concepteur de classes, vous pouvez déplacer un membre de type d'un type à un autre, si les deux types sont visibles dans le diagramme de classes actif.

Pour déplacer un membre de type d'un type à un autre

  1. Dans un type visible sur l'aire de conception, cliquez avec le bouton droit sur le membre à déplacer vers un autre type, puis cliquez sur Couper.

  2. Cliquez avec le bouton droit sur le type de destination, puis cliquez sur Coller.

    La propriété est supprimée du type source et apparaît dans le type de destination.

Rubriques connexes

Titre

Description

Affichage des types et relations (Concepteur de classes)

Conception des classes et des types (Concepteur de classes)