Share via


Renommer

Mise à jour : novembre 2007

Renommer est une fonctionnalité de refactorisation dans l'environnement de développement intégré (IDE) de Visual Studio qui offre un moyen simple de renommer les identificateurs pour les symboles de code tels que les champs, les variables locales, les méthodes, les espaces de noms, les propriétés et les types. Renommer peut être utilisé pour modifier les noms dans les commentaires et les chaînes et pour modifier les déclarations et les appels d'identificateur.

Remarque :

Lors de l'utilisation du contrôle de code source pour Visual Studio, obtenez la version la plus récente de sources avant de tenter d'exécuter la refactorisation de changement de nom.

La refactorisation de changement de nom est disponible à partir des fonctionnalités Visual Studio suivantes :

Fonctionnalité

Comportement de la refactorisation dans l'IDE

Éditeur de code

Dans l'Éditeur de code, la refactorisation de changement de nom est disponible lorsque vous placez le curseur sur certains types de symbole de code. Lorsque le curseur est dans cette position, vous pouvez appeler la commande Renommer en tapant le raccourci clavier (CTRL + R, R) ou en sélectionnant la commande Renommer dans une balise active, un menu contextuel ou le menu Refactoriser. Lorsque vous appelez la commande Renommer, la boîte de dialogue Renommer apparaît. Pour plus d'informations, consultez Renommer, boîte de dialogue et Comment : renommer des identificateurs.

Affichage de classes

Lorsque vous sélectionnez un identificateur dans l'Affichage de classes, la refactorisation de changement de nom est disponible dans le menu contextuel et le menu Refactoriser.

Explorateur d'objets

Lorsque vous sélectionnez un identificateur dans l'Explorateur d'objets, la refactorisation de changement de nom est uniquement disponible dans le menu Refactoriser.

Grille des propriétés du Concepteur Windows Forms

Dans la Grille des propriétés du Concepteur Windows Forms, la modification du nom d'un contrôle déclenchera une opération de changement de nom pour ce contrôle. La boîte de dialogue Renommer n'apparaîtra pas.

Explorateur de solutions

Dans l'Explorateur de solutions, une commande Renommer est disponible dans le menu contextuel. Si le fichier source sélectionné contient une classe dont le nom de classe est identique au nom de fichier, vous pouvez utiliser cette commande pour renommer le fichier source et exécuter la refactorisation de changement de nom, simultanément.

Par exemple, si vous créez une application Windows par défaut et renommez Form1.cs en TestForm.cs, le nom de fichier source Form1.cs changera en TestForm.cs et la classe Form1 et toutes les références à cette classe seront renommées TestForm.

Remarque :

La commande Annuler (CTRL+Z) annulera uniquement la refactorisation de changement de nom dans le code, mais ne redonnera pas au fichier son nom d'origine.

Si le fichier source sélectionné ne contient pas une classe dont le nom est identique au nom de fichier, la commande Renommer de l'Explorateur de solutions renommera uniquement le fichier source et n'exécutera pas de refactorisation de changement de nom.

Opérations de changement de nom

Lorsque vous exécutez Renommer, le moteur de refactorisation exécute une opération de changement de nom spécifique pour chaque symbole de code. Celles-ci sont décrites dans le tableau suivant.

Symbole de code

Opération Renommer

Champ

Modifie la déclaration et les utilisations du champ en fonction du nouveau nom.

Variable locale

Modifie la déclaration et les utilisations de la variable en fonction du nouveau nom.

Méthode

Modifie le nom de la méthode et toutes les références à cette méthode en fonction du nouveau nom.

Remarque :

Lorsque vous renommez une méthode d'extension, l'opération de changement de nom se propage à toutes les instances de la méthode qui sont dans la portée, indépendamment de si la méthode d'extension est utilisée en tant que méthode statique ou méthode d'instance. Pour plus d'informations, consultez Méthodes d'extension (Guide de programmation C#).

Espace de noms

Remplace le nom de l'espace de noms par le nouveau nom dans la déclaration, dans toutes les instructions using et dans les noms complets.

Remarque :

Lors du changement de nom d'un espace de noms, Visual Studio met aussi à jour la propriété Espace de noms par défaut sur la page Application du Concepteur de projets. Cette propriété ne peut pas être réinitialisée en sélectionnant Annuler dans le menu Edition. Pour réinitialiser la valeur de la propriété Espace de noms par défaut, vous devez modifier la propriété dans le Concepteur de projets. Pour plus d'informations, consultez la Page Application.

Propriété

Modifie la déclaration et les utilisations de la propriété en fonction du nouveau nom.

Type

Modifie toutes les déclarations et toutes les utilisations du type en fonction du nouveau nom, y compris les constructeurs et les destructeurs. Pour les types partiels, l'opération de changement de nom se propagera à toutes les parties.

Notes

Changement de nom des membres implémentés ou substitués

Lorsque vous utiliser Renommer pour modifier le nom d'un membre qui implémente/substitue ou est implémenté/substitué par les membres d'autres types, Visual Studio affiche une boîte de dialogue qui prévient que l'opération de changement de nom provoquera des mises à jour en cascade. Si vous cliquez sur Continuer, le moteur de refactorisation recherche itérativement et renomme tous les membres des types de base et des types dérivés qui ont une relation implémente/substitue avec le membre renommé.

L'exemple de code suivant contient des membres avec une relation implémente/substitue.

interface IBase
{
    void Method();
}
public class Base
{
    public void Method()
    { }
    public virtual void Method(int i)
    { }
}
public class Derived : Base, IBase
{
    public new void Method()
    { }
    public override void Method(int i)
    { }
}
public class C : IBase
{
    public void Method()
    { }
}

Dans l'exemple précédent, le changement de nom C.Method() renomme également Ibase.Method(), car C.Method() implémente Ibase.Method(). Ensuite, le moteur de refactorisation voit de manière récursive que l'interface Ibase.Method() est implémentée par Derived.Method() et renomme Derived.Method(). Le moteur de refactorisation ne renomme pas Base.Method(), parce que Derived.Method() ne substitue pas Base.Method(). Le moteur de refactorisation s'arrête alors, à moins que la case à cocher Renommer les surcharges ne soit activée dans la boîte de dialogue Renommer.

Si la case à cocher Renommer les surcharges est activée, le moteur de refactorisation renomme Derived.Method(int i) parce qu'il surcharge Derived.Method(), Base.Method(int i) parce qu'il est substitué par Derived.Method(int i), et Base.Method() parce que c'est une surcharge de Base.Method(int i).

Remarque :

Lorsque vous renommez un membre qui a été défini dans un assembly référencé, une boîte de dialogue explique que ce changement de nom provoquera des erreurs de génération.

Changement de nom de propriétés de types anonymes

Lorsque vous renommez une propriété dans des types anonymes, l'opération de changement de nom se propagera aux propriétés dans les d'autres types anonymes qui ont les mêmes propriétés. Les exemples suivants illustrent ce comportement.

var a = new { ID = 1};
var b = new { ID = 2};

Dans le code précédent, le changement du nom de l'ID modifiera l'ID dans les deux instructions car elles ont le même type anonyme sous-jacent.

var companyIDs =
    from c in companylist
    select new { ID = c.ID, Name = c.Name};

var orderIDs =
    from o in orderlist
    select new { ID = o.ID, Item = o.Name};

Dans le code précédent, le changement du nom de l'ID renommera uniquement une instance d'ID car companyIDs et orderIDs n'ont pas les mêmes propriétés.

Voir aussi

Tâches

Comment : renommer des identificateurs

Concepts

Refactorisation

Référence

Types anonymes (Guide de programmation C#)

Autres ressources

Contrôle de code source pour Visual Studio